問題タブ [subject-observer]

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 投票する
3 に答える
1360 参照

angular - Angular 6サブスクリプションが複数回呼び出されます

コンポーネント間の通信全体がサブジェクトとサブスクリプションに基づいている新しいAngular 6 WebAppに取り組んでいます。

サブスクリプション全体は、ダッシュボード コンポーネント (ルートの下のレベル 1) に実装されます。ダッシュボードでは、コンポーネントは SignalR Web ソケットを使用して C# ASP.NET Core バックエンドから生成されたテーブルです。

これで、このテーブルの各行に編集ボタンと削除ボタンが実装されました。編集ボタンは ngx-bootstrap Modal を開きます。モーダル オープニング関数は、param で 1 行の情報を取ります。

この「編集モーダル」内には、行の日付を含むいくつかの入力があります。変更を保存すると、データがダッシュボード コンポーネントに送り返され、.NET Core API を使用して行の更新メソッドが呼び出されます。

編集モーダルとダッシュボードの間のこのデータ ストリーム中に、私のサブスクリプションは 4 回呼び出されます。

これをデバッグしようとしましたが、ここで何が起こっているのか手がかりが見つかりません...

コミュニケーションのための私のサービス:

モーダル編集:

ダッシュボード コンポーネント

OrderService で注文を更新する (Angular と SignalR (バックエンド) の間のブリッジ)

成功ログが実行されず、呼び出しが 4 回実行された理由を誰か知っていますか?

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

angular - 異なるコンポーネントでサービスを利用できない

サイド ナビゲーション バーとコンテンツ div があります。私が現在達成したいのは、サイドナビゲーションの要素をクリックするたびにということです。そのナビゲーション アイテムの innerText は、コンテンツ div に表示する必要があります。私のコードは以下の通りです

sidenav.component.ts

content.component.ts

blog.service.ts

これを解決するのを手伝ってください。コンテンツをサービスに渡すことはできますが、サイド ナビゲーション アイテムをクリックするたびにコンテンツ ts ファイルのコードが実行されません。

私の完全なコードはここにあります - https://stackblitz.com/github/vibhorgoyal18/atest-blog

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

angular - anugular 6 同時に複数のコンポーネントからサブジェクトをサブスクライブするが機能しない

サブジェクト クラスに同時に登録されている 2 つのコンポーネント (親と子) と 1 つのサービスがあります。しかし、サブジェクト クラスがnextメソッドを使用してデータを発行すると、1 つのコンポーネント (子) だけがデータを取得します。

navbar.component.ts :(送信者):

message.service.ts: (サブスクライバー)

base-template.component.ts : (サブスクライバー) (子)

action.component.ts (サブスクライバー)(親)

データがnavbarコンポーネントから来る場合、ベーステンプレートsubscription関数のみがデータを取得しますが、subscriptionベーステンプレートからメソッドを削除するとsubscription、アクションコンポーネントからのメソッドがデータを取得します. しかし、すべてのコンポーネントとサービスが同時にレンダリングされるときに、すべてのコンポーネントとサービス内のデータが必要です。それを達成する方法。