2015-02-23 44 views
0

我有這2個控制器:angular.js事件發出,變負荷時間

app.controller('SomeCtrl', ['$scope', '$rootScope', function($scope, $rootScope){ 
    $scope.number = 0; 

    $rootScope.$on('do', function(event, data) { 
     $scope.number += data; 
    }); 
}]); 
app.controller('SecondCtrl', ['$scope', function($scope) { 
    this.something = function() { 
    $scope.$emit('do', 5); 
    }; 
}]); 

和HTML我只是寫這個變量:

<div ng-controller="SomeCtrl">{{number}}</div> 

當我打電話something功能它發射do。但它正在更新數字,如10秒。爲什麼?

+0

這不是你的問題的答案,但使用事件與兩個控制器通信通常是一個不好的做法。 您可以使用Service和$ scope。$ watch來管理通信,或者如果Controller是另一個組件內的組件,則使用Directive。 – Neozaru 2015-02-23 19:51:32

+0

謝謝,我會看看這些東西。 – dontHaveName 2015-02-23 19:54:53

回答

0

該問題已通過致電$scope.$apply();解決。