問題タブ [angular-broadcast]

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

angular-broadcast - ng2-cabelを使用したangularjs 4で放送局のアクションが2回呼び出される問題

私はチャットにng2-cableを使用しており、サーバーからのアクションをレールでブロードキャストしています

AngularJs

--> app.component.ts 内

import { Ng2Cable, Broadcaster } from ' ng2-cable ';

--> 接続にはこれを使用

プライベート ng2cable: Ng2Cable,

this.ng2cable.subscribe(environment.apiEndpoint+"/cable", 'ChatChannel',{room: this.currentUser.id});

--> サーバーからの通知を読む

import {ブロードキャスター} from 'ng2-cable';

民間放送局: Broadcaster,

this.broadcaster.on('ExpertQuestionList').subscribe(message => { console.log("これは、一度ロードした後にこのページに戻ってきたときに複数回呼び出されます") } );

ここで、ExpertQuestionList は 1 つのアクション名です。アクションケーブルを使用してレールサーバーからブロードキャストします。

-------------------------------------------------- -------------------------------------------------- --------------------

ExpertQuestionList はサーバーから 1 回ブロードキャストされます。レール ログで確認できますが、console.log で 2 回呼び出されます。2回とは、このページに来る回数と同じように複数回繰り返すことを意味します。何度も再初期化するのはとても簡単です。リセットまたは破棄アクションのようなものが欲しい (this.broadcaster.on('ExpertQuestionList'))

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

javascript - $broadcast は限定された文字が使用された場合にのみ発火します

Angular の を使用しようとして$broadcast、テストして文字列 'hi' を使用し、兄弟コントローラーでそれを監視すると、次のように正常に動作します。

文字列を などの別のものに変更するとすぐに、2 番目のコントローラーでメソッドphaseChangeを呼び出すことができません。$on理由がわからない。メソッドをラップしようとし$broadcastました$timeoutが、問題は解決しませんでした。

質問

間違った方法で使用$broadcastしていますか、それとも構文が間違っていますか?