2017-10-31 24 views
0

複数のコンポーネントがデータを入力するために使用するメニューオブジェクト(メニューストア)があります。ページをロードするときサービス内の角度のあるアクセスルータのパラメータ

私は、サーバーからロードされたメニューを持っており、ストアとして、それを公開したいと思い

private subject = new BehaviorSubject<Menu>(state); 
private menuStore = this.subject.asObservable().filter((m) => m != undefined).distinctUntilChanged(); 

menu$ = this.menuStore.select<MenuItem>('menu'); 

だから私が持っている疑問がある結果に取得後、各コンポーネントthis ...現在、私たちは "menuService"のコンストラクタでアクションを実行します。私が理解しているように、これはAngularsコントロール(?)ではなく、実際にはベストプラクティスではありません。

どうすればいいですか? menu.store.tsの "OnInitを実装する"を使うべきでしょうか?それとも、コンストラクタでこれを行うのが有効かどうか、これが原因で私たちに問題が発生する可能性がありますか?

+1

加入。 – jonrsharpe

+0

ああ..素晴らしい!私はそれを疑っていましたが、すべてのコンポーネントを購読しなくても、どうすればこのことができますか? – Mackelito

+1

サービスは 'ngOnDestroy'フックを持っています –

答えて

0

私は「PageComponents」を作成終わったと、これらのコンポーネントにライフサイクルフックは* *コンポーネントに対してのみです

this.route.params.subscribe((params: Params) => { 
    this.menuService.setActiveItem(params.id) 
}) 
関連する問題