Angular2のObservableで 'subscribe'と 'unsubscribe'はどのように動作しますか? CRUD操作を含み、CRUDと対話サービスとの間で、 観測Angular2はObservablesを使用する正しい方法ですか?
を返し
- CRUD(レポ)サービス:
私のアーキテクチャは、次の通りです。このサービスはコンポーネントに注入され、専用のBehaviorSubjectsを含みます。私は以前のようなゲッター言及に加入することによって、データにアクセスし、コンポーネントレベルでは、このような
get selectedClient(): Observable<Client> { return this._selectedClient.asObservable(); } get clients(): Observable<Client[]> { return this._clients.asObservable(); }
として基礎となる値を公開:私はお願いしたいと思います
deleteClient() { this.selectedClient.subscribe(actualClient => { this.clientStore.deleteClient(actualClient).subscribe(response => { if (response) { this.router.navigate(['/clients']); } }); }).unsubscribe(); } updateClient() { this.clientUpdateForm.submitClientForm().subscribe(client => { if (client) { this.growlService.showInfoMessage("Client updated", client.firstName + " " + client.lastName); } }).unsubscribe(); } this.selectedClient.subscribe(client => { this.clientForm = this.clientUpdateForm.clientForm; }).unsubscribe();
まず、ありますこのデザインに何か問題がありますか? 第2に、いつ退会する必要がありますか?
考えられるのは、selectedClient
がアプリケーションの状態オブジェクトであるということです。
しかし、それはすべてのコンポーネントでこの「購読/購読中止」のすべてをもたらし、あなたが購読を停止しないと私の理解から、サブスクリプション配列に別の購読を追加します。定期購読
「selectedItem」という概念がアプリにはありますか?
ありがとうございます。私は今いつ退会するのか理解しています。私は前にngrx/storeを試してみましたが、ほぼ同じようなパターンをしているようですが、ちょっと混乱したAPIを公開しました。 – ZeroCool
あなたはreduxパターンについて詳しく読むことをお勧めします。ダン・アブラモフにはegghead.ioに関する良いチュートリアルがあります。次に、ngrx/example-appをチェックアウトすることができます –