AngularJS 2のコンポーネントの@Input
を非同期コールバックフィードにする方法はありますか? (私は特にRC7を使っています)AngularJS 2コンポーネントの入力を非同期的に更新する
私の目標は、階層内のそのレベルのサービスへのインターフェイスとして機能するラッパーコンポーネントの階層を持つことです。アイデアは、子コンポーネントにモデルを提供するために、親コンポーネントのインターフェースを使用することができます。
<parent-comp #parent>
<child-comp
*ngFor="let id of parent.childIds;"
[model]="parent.getChild(id)">
<!-- And so on, with the child's children, etc. -->
</child-comp>
</parent-comp>
親コンポーネントのメソッドは、A返すサービスメソッドをラップします:つまり、親コンポーネントは、テンプレート内のすべての、そのモデルを設定するには、子コンポーネント上の入力にマップするgetChild(ID)
を提供します約束する(この時点で)。だから、後でインスタンスを返す必要があるので、親コンポーネントのgetChild()
メソッドの内容が問題になります。
私が考えた解決策の1つは、モデルのインスタンスを移入するためにこれらのメソッドを再作成することです。
// In the parent component
public getChild(id: string): Child {
let child = new Child();
this.service.getChild(id, child);
return child;
}
// In the parent service
public getChild(id: string, model: Child): Promise<Child> {
this.http.get(some_url).toPromise().then(res => model.update(res));
}
親コンポーネントメソッドが子にモデルを提供できるように、この構造体を処理する方が良いでしょうか?