を破壊し、$は私angularjsアプリケーションに発します。ここで私は機能発する$登録していますコードです:ここでは
this.scope.$on('changeTime', (event, args) => {
console.log(args.currentTime);
});
すべての作業罰金です:私は返すために、このEMIT機能を聴いています別のコントローラでは
this.scope.$emit('changeTime', {
currentTime: this.currentTime
});
をのようなオブジェクトがあります。私は、コンソールに印刷された最初の関数現在の時刻を呼び出すとき
this.functionone(){
this.scope.$on('changeTime', (event, args) => {
console.log(args.currentTime);
});
}
this.functiontwo(){
this.scope.$on('changeTime', (event, args) => {
console.log(args.currentTime);
});
}
: しかし、このリスナーは、異なる状況に応じて呼び出された私の異なる機能に呼びかけています。私の条件はその時の変化や他の機能functiontwo()を呼び出すときに、私はまたfunctiononeコンソール値を見ることができます。第二の機能は、1の後に呼び出しを受ける際に2回の呼び出しchangetimeリスナーを意味
。
だから、どのように私は、この先に呼ばれるchangetimeの登録を解除することができます。だから二度目は来ない。デザインlisteners
/$watch
機能によって
[angularJSのブロードキャストイベントの登録を解除する方法]の可能な複製。上の$](http://stackoverflow.com/questions/14898296/how-to-unsubscribe-to-a-broadcast-event-in-angularjs-how-to-remove-function-reg)経由で登録された機能を削除する方法 –