0

この投稿からヒントを得ようとしています - $scope.$emit と $scope.$on を使用し ていますが、コントローラーが互いに関連していない場合は何も機能しないようです。

あれは -

<div ng-controller="CtrlA">
</div>

<div ng-controller="CtrlB">
</div>

CtrlB では、次のようにします。

$rootScope.$broadcast('userHasLoggedIn', {})

CtrlA では、次のように聞きます。

$rootScope.$on('userHasLoggedIn, function(event, data){});

いいえ-CtrlA div内にCtrlB divをネストしない限り、CtrlAはブロードキャストされたイベントを受信しません

何か案が?

4

1 に答える 1

5

あなたが何を試したのかわからないままに答えるのは難しいです。このplnkrをご覧ください: http://plnkr.co/edit/hYzWOrgEyPLlCMZnDCo2?p=preview

私は基本的に 2 つのコントローラーを作成し、一方が他方にテキストを送信します。

app.controller('CtrlA', function($scope, $rootScope) {
  $scope.submit = function(){
    $rootScope.$broadcast('userHasLoggedIn', $scope.input);
  }

});

app.controller('CtrlB', function($scope) {
  $scope.$on('userHasLoggedIn', function(event, data){
    $scope.data = data; 
  });

  $scope.data = 'nothing';
});
于 2014-11-24T15:48:01.513 に答える