問題タブ [behaviorsubject]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3739 参照

angular - Angular: RxJs/BehaviorSubject を使用してコンポーネント間でデータを動的に共有する

2 つの兄弟コンポーネントがあり、並べて表示しています。たとえば、コンポーネント A とコンポーネント B とします。

Component-A にはフォーム コントロールがあり、ユーザーがフォームに入力したら、いくつかのビジネス ロジックを実行し、データを Component-B に表示する必要があります。

データを共有するサービスを作成しました。現在、ユーザーが変更を加えたときにデータがコンポーネント B で利用可能ですが、自動的に表示されません。コンポーネント B に「更新」ボタンを配置し、ボタンをクリックするとデータが表示されます。

私が達成したいのは、ユーザーがクリックすることなく、Component-A から Component-B へのスムーズなデータ フローです。何らかの理由で、Component-B でサービスをサブスクライブできません。

@angular バージョン ~4.0.0 の使用

Nav.Service.ts

コンポーネントA

HTML:

コンポーネント B

HTML

以下のHTMLでは、ユーザーがComponentAに変更を加えたときに{{dataFromComponentA}}にデータを自動的に表示したいと考えています。現在、「更新」ボタンをクリックするとデータが表示され、このボタンのクリックを避けたかったのです。