質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
RxJS

RxJSは、Observablesを用いたリアクティブプログラミングのJavaScript向けの実装です。イベント駆動処理も含めた非同期処理を高い可読性を持って容易にコーディングできます。

Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

Q&A

0回答

786閲覧

BehaviorObjectの値が更新されない

_dana

総合スコア15

RxJS

RxJSは、Observablesを用いたリアクティブプログラミングのJavaScript向けの実装です。イベント駆動処理も含めた非同期処理を高い可読性を持って容易にコーディングできます。

Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

0グッド

0クリップ

投稿2020/11/18 19:02

Angulrで開発をしているのですが、BehaviorSubjectが思うように動きません

以下のようなサービスとコンポーネントがあります
トップページのコンポーネントで新しいItemオブジェクトを作成し、次にトップページに戻るまでそのオブジェクトは全コンポーネントで共有され、更新された場合も全コンポーネントに通達するようにしたいです。
トップページに戻るとそのItemオブジェクトにnullが挿入され、オブジェクトがリセットされるイメージです

上記のような実装はできているのですが、
ある特定のページからポップアップするモーダルで値を更新して、トップページに戻り、またそのページにいくと、過去の情報が残ってしまっています。

トップページではOnInitでBehaviorSubjectにnextでnullを流しているのに、更新されないのは何故でしょうか。


基本的にサービスと各コンポーネントは以下の図のような情報のやりとりをします。

  • サービス

item : アプリ全体で共有する
BehaviorSubject : itemの変更を各コンポーネントに通達する
update() : 現状のitemをBehaviorSubjectに流す
method_a(arg) : 引数に応じてitemを更新し、update()を呼び出す
method_b, method_c, ... : method_aと同様の動きをする

  • コンポーネント

_item : HTMLに表示するitem
ngOinit : サービスのBehaviorSubjectをsubscribeして_itemに入れる
method(arg) : HTML等での入力値を引数にサービスのmethod_a()を呼び出す
同様の動きをするコンポーネント(モーダル含む)が役割ごとに複数ある

処理の流れ

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2020/11/19 01:33 編集

この画像はわかりやすいと思ってつけたんですか? 利き手を怪我してるとか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問