角度では、コンポーネントは変数またはオブジェクトとして@Input()
を受け取ることができます。変数が変わるたびに、Angularはコンポーネントに通知します。非常にクールです...コンポーネントオブジェクトが角度2/4で変更されたときにオブジェクトに通知できますか?
私は、左側にng2-tree
ビュー、右側に編集ビューを表示するアプリケーションを構築しようとしています。ユーザがツリー内のノードをクリックすると、そのアイテムの詳細が右側に表示され、ユーザはそのアイテムのプロパティを変更できます。私が必要とするのは、それらの変更がツリーに伝播することです。
ツリー内の各ノードは、ItemTreeNode
:
export class ItemTreeNode implements TreeModel {
value: string;
id: string;
children: Array<ItemTreeNode>;
icon: string;
settings: TreeModelSettings;
loadChildren;
constructor(
private itemService: ItemService,
private parent_id: string,
public item: Item
){ ... }
}
ツリー名.value
を使用してノードをレンダリングします。これはコンストラクタでthis.item.nodeName()
を呼び出すことによって設定されます。一度設定すると、変更されません。問題は、アイテムが変更されるたびに変更する必要があるということです。
value
プロパティを更新できるように、アイテムが変更された場合にこのオブジェクトが通知される方法を探しています。
ItemTreeNode
はアイテムを「監視」し、変更が検出された場合にはコールバックを受信する方法はありますか?
希望の動作を実装するには、より良い方法がありますか?
はい、[Shared Services](https://rahulrsingh09.github.io/AngularConcepts/faq)または[Ngrx](https://rahulrsingh09.github.io/AngularConcepts/ngrx)を見ることができます。 –