私は親子関係を持つプログラミングアプリケーションです。データ/イベントフローを処理するためのベストプラクティスを探しています。 親には、子コンポーネントに送信される項目のリストがあります。角2/4親子通信
子コンポーネントには、現在の値を更新するためのデータエントリがあります。現在のところ、更新値は子供から処理されています。私は次のようにしました。サーバから成功を収めたとき、私はちょうど子の値が大丈夫であることを確認します。私はこのデータを親(eventEmitter)に伝播させることを可能にしましたが、この時点で私はこれで何もしていませんか? ここで双方向データバインディングを使用しているかどうかまたは、私はonActivityUpdatedを使用してそのアイテムを親に伝播する必要がありますか?子供がサービスコールとその値の更新を処理する必要がありますか?
子リストはリスト(同じページのすべてのデータ)として表示されるため、1つの子を編集してから別の子を編集することができます。親からすべてのオプションを保存する必要があります。これを処理する最適な方法は何ですか?親がサービスコールを開始し、すべての値を変更する必要がありますか?
TS:
export class ParentComponent implements OnInit {
//Filtered items
@Input()
public items: Client[];
ここ
は
親がこのように子どもたちに送られるアイテムのリストを、持っている...これまでのところ、私は不必要なもののほとんどをommitedたコードです
HTML:
<case-activity-time-edit-item *ngFor="let item of items; let i = index" [(element)]="items[i]" (activityUpdated)="onActivityUpdated($event)"></case-activity-time-edit-item></div>
ここに子供の:
export class ChildComponent implements OnInit {
@Input()
public element: Client;
@Output()
public activityUpdated: EventEmitter<Client> = new EventEmitter<Client>();
私たちがここでオブジェクトを扱っている場合、オブジェクトはJSで可変であることを覚えておく必要があります。この場合、オブジェクトはパスされます。参考にして、あなたが子供のデータを使って何をしても、親はイベントエミッターがなくても知っています。ちょうど注意してください、これはいつもあなたが望むものではないかもしれませんが、あなたはそれがここで起こるように思えます。また、データの編集や保存について話しているので、ここで便利な形式のように思えます。私は多くの機能で本当に素晴らしいです反応性のフォームを使用するだろう! :) – Alex