2016-05-27 33 views
0

コントローラにルートスコープの関数を持っています。Angularjs - 最初に呼び出した後に関数呼び出しを再帰呼び出しします。

ヘルプPlz。

$rootScope.getWord = function(key){ 
    console.log('in get work fucntion key: '+key); 
    if(angular.isDefined($rootScope.lang[key])){ 
     return $rootScope.lang[key]; 
    } 
    else { 
     return key; 
    } 
} 
+0

情報が不十分です!どのディレクティブを使用して関数をバインドしていますか?同じビューコードを共有します。 – Sajal

+0

この関数を呼び出す場所にコードを入れてください。また、できるだけ$ rootScopeにデータを添付するのではなく、ファクトリ/サービスを使用してください。 – nada

+0

あなたのお返事ありがとうございます。私はsmartAdminテーマを使用しています。私はそれを{{getWord( 'test')}}と呼んでいます。 –

答えて

0

で考えるA.js

var title = "Company"; 
    $rootScope.$broadcast('changepanelTitle', title); 

としてこれを検討してください。私の指示の1つは、settimeoutによってある間隔の後に呼び出されました。そのために何か変更があるかどうか再度確認していました。だから、私の関数が再帰的に呼ばれたのです。今私はsettimeoutディレクティブとそのうまく動作する変更している。

0

実際にこの方法を使用したい場合は、角度でrootscopeを使用しないでください。

は今、あなたは、切り抜いたコントローラでの使用を予定している。このタイトルは、これは私が問題を見つける最後にB.js

$scope.$on('changepanelTitle', function(event, title) { 
     $scope.paneltitle = title; 
    }); 
+0

はい、これは通常の場合です。私はキーの翻訳を取得するためにそれを使用していますが。このテーマは多言語をサポートしています。任意のビューで使用されるコンテンツは、$ rootScopで実装されたgetWordメソッドを介して取得する必要があります。 –

関連する問題