2015-02-23 2 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

Это не ответ на ваш вопрос, но использование событий для общения с двумя контроллерами - это, как правило, плохая практика. Вы можете использовать службу и $ scope. $ Watch для управления связью или использовать директиву, если контроллер является компонентом внутри другого. – Neozaru

+0

Спасибо, я посмотрю на эти вещи. – dontHaveName

ответ

Смежные вопросы