2017-01-23 12 views
1

問題は、EventFactoryという工場で発生しているようです。工場内の2つのステートメントが問題です。彼らは以下のとおりです。これらのステートメントの前に罰金働いていた

 $scope.$on('event:updateStuff', function (event, data) { 
      myObj = data; 
     }); 

     $scope.$on('event:updateOtherStuff', function (event, data) { 
      myArray.push(data); 
     }); 

私は全体$scope.$onをコメントアウトしない限り、今私は、レンダリングするページを取得することはできません。最後にアプリケーションを正常に実行して以来、私はコードの変更を行っていないので、この動作は予期しないものです。コンソールにエラーメッセージは表示されません。

$scope.$onを復元すると、内側のステートメントをコメントアウトしても問題は解決されません。私はそれらをコメントアウトし、ページはまだレンダリングに失敗します。

このページが失敗する:

 $scope.$on('event:updateStuff', function (event, data) { 
      myObj = data; 
     }); 

     $scope.$on('event:updateOtherStuff', function (event, data) { 
      myArray.push(data); 
     }); 

これは、ページが失敗する:コメントアウトだけ全体$scope.$on

 $scope.$on('event:updateStuff', function (event, data) { 
      /*myObj = data;*/ 
     }); 

     $scope.$on('event:updateOtherStuff', function (event, data) { 
      /*myArray.push(data);*/ 
     }); 

は、ページのロードを行います。

 //$scope.$on('event:updateStuff', function (event, data) { 
      //myObj = data; 
     //}); 

     //$scope.$on('event:updateOtherStuff', function (event, data) { 
      //myArray.push(data); 
     //}); 
+0

@ A.Jわかりやすく編集しました。私は問題を引き起こすのは '$ scope。$ on'によって呼び出される関数ではなく、' $ scope。$ on'が存在するだけでページが読み込まれないということです。 – Legion

+0

'console.log($ scope、$ scope。$ on)'の場合はどうなりますか? – dave

+0

コントローラコード全体を投稿できますか? – GPicazo

答えて

2

サービスは通常、コントロールのように$scopeにアクセスできないlerはそうです。せいぜい、メソッドへのパラメータとして渡されるメソッドを取得することも、$rootScopeサービスを注入することもできます。

最も単純なのは、$scopeではなく、工場/サービス内に$rootScopeを注入して参照していることを確認するのが最も簡単な方法です。

関連する問題