2016-03-22 5 views
4

通常の$ rootScope。$ broadcastを使用して、別のコントローラに制御を転送しています。他のコントローラがこれに基づいて関数を呼び出そうとしています。問題は、$ scope関数と呼ばれるこの関数が、コントローラ内のプライベート関数であることです。だから私は以下を書いて:

$scope.$on('aRequest',function(){console.log('it works')}); 

それは期待どおりに動作します。しかし、私が書くとき:

$scope.$on('aRequest',$scope.someFunction()); 

それは動作しません。コンソールにも構文エラーはありません。何か不足していますか?

枚このコールは、同様以下のように行われたとき、それが動作することを追加する:

$scope.$on('aRequest',iWorkProperly); 
var iWorkProperly = function(){}; 

答えて

6

だけ()なし$scope.$on('toggleNavRequest',$scope.someFunction);を書く - あなたは、関数に参照を渡すと、実際に(それをトリガしていません私はsomeFunctionはエラーが定義されていません取得しています

$scope.someFunction = function() { 
    console.log("Hi"); 
}; 

$scope.$on('toggleNavRequest',$scope.someFunction); 
+0

:アンギュラは)

例を関数呼び出しをトリガーします。私は大草原を取得しようとします。私はあなたが示唆している方法を試してみて、エラーを投げているのと同じことに言及するのを忘れてしまった。また、参照を単に渡している場合、同じを渡すべきではないので、エラーをスローしません。 –

+1

@JyotirmoyPan私の更新された答えを見てください –

+1

時計タスクを完了するためにハリウッドを待つ必要があります。私の悪い。ありがとう。 –

関連する問題