2015-06-12 2 views
-1

я написал Тхи кода в моих контроллерах:события OnClick в моем контроллере

$('#categoryId').on('click', function(event){  
     $scope.items = $scope.getUpdatedItems(); 
     console.log('Items ',$scope.items); 
    }); 

В моих директивах у меня есть это:

.... 
scope.$watch('items', function(items){ 
    console.log('Directives - Items ',items); 
.... 

Проблема заключается в том, что я никогда не войти в $ часах, объявленных в мои директивы.

Кто-нибудь может мне помочь .. Спасибо

+0

Возможный дубликат [$ watch'ing для изменения данных в угловой директиве] (http://stackoverflow.com/questions/13980896/watching-for-data-changes-in-an-angular-directive) –

+1

есть вы пробовали $ scope. $ apply(), потому что вы используете код вне углового контекста –

+0

, почему вы не думаете о 'ng-click'? –

ответ

0

Вы не перепутали JQuery с AngularJS, что испортите с циклом дайджеста на угловой. Угловой сделал свою собственную директиву для обработки такой деятельности, как в вашем случае вы могли бы нам директивой ng-click, это вызовет указанную функцию внутри значения атрибута ng-click при щелчке по этому элементу.

Markup

<button type="categoryId" ng-click="updateAllItems()"></button> 

Код

$scope.updateAllItems = function(){  
    $scope.items = $scope.getUpdatedItems(); 
    console.log('Items ',$scope.items); 
}); 

Приведенный выше код будет вызывать updateAllItems функцию, которая пребывает внутри контроллера & затем $scope.items будут обновлены. И тогда вы увидите внутреннюю директиву.

+0

@ user880386 это вам помогло? –

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