-1

2つのコンポーネント(トピックコンポーネントとトピック - 詳細コンポーネント)の間に共有状態/データが必要です。私はこのためにシングルトン注射サービス(トピックサービス)を使用することに決めました。次のようにシングルトンサービス - 複数のコンポーネントの属性の値が異なります

動作は次のとおり テーブルから行をユーザーがクリックは(PIC1を参照)場合、にonSelect方法は、(PIC2を参照)と呼ばれ、それは(トピックサービス選択したトピックに設定しますその行です)。

トピックサービスsetSelectedTopic(PIC3を参照)を選択したトピック/行のデータ/状態を設定する方法を用います。でも、TopicDetailComponent(PIC5を参照)トピックサービス

が注入され、そして私はngOnInit方法、属性this.topicService.selectedTopicにアクセスしようとしたとき、私は「未定義」を取得します正しいトピックはサービスに渡されますが。

だから、問題はTopicDetailComponent ngOnInitselectedTopicを渡しときトピックサービスで、this.topicService.selectedTopicは未定義です。

誰かがこの問題を解決できますか?

ありがとうございました!

P.S.私は角2に新たなんだ、そう私と一緒に負担してください:)

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

答えて

1

サービスをシングルトンにしたい場合は、topics.component.tsからプロバイダを完全に削除する必要があります。 TopicServiceをプロバイダとして指定すると、サービスの新しいインスタンスが作成され、シングルトンの動作が失われます。

+0

多くの感謝!今すぐ使える – andreicovaciu

+0

問題ありません。続けて! –

0

理由は、それが緩ん理由トピック情報の設定から(topic component)からフェッチする(topic-detail component)、変数にはメモリがありません。必要なのはSubjectまたはBehaviourSubjectです。 BehaviorSubject vs Observable?

+0

サービスの実際のコードスニペットを私に提供した場合は、あなたのために変更していただきたいと思います。しかし、私はあなたのスクリーンショットを書き直していません –

+0

は素晴らしいですが、私はコードよりもむしろ説明にもっと興味があります。 – andreicovaciu

+0

とにかく、ここにレポがあります:https:// github。 – andreicovaciu

関連する問題