2013-09-16 4 views
0

Я создал директиву, связывающую событие click с элементом. При щелчке я хочу использовать фабрику, которая делает вызов ajax. Как мне это достичь? Мой код выглядит так:Как использовать ngResource внутри функции обратного вызова привязки?

angular.module('user') 
     .directive('activityFeed', function(userFactory, $http) { 
     return { 
      restrict: 'A', 
      link: function($scope, element, attrs) { 
       userFactory.getActivities(); 
       element.bind('click', function() { 
        console.log("hello"); 
        userFactory.getActivities(); 

       }) 
      } 
     } 
    }) 

Первый вызов, который находится вне функции связывания. Теперь, когда я нажимаю на атрибут, он записывает «привет», но он не вызывает getActivities().

+0

orular? Вы можете сначала исправить это. –

ответ

2
element.bind('click', function() { 
    console.log("hello"); 
    $scope.$apply(function(){ 
     userFactory.getActivities(); 
    }); 
}); 
+0

Эй, спасибо. Это сработало. Можете ли вы рассказать мне, почему мне нужно обновлять привязки перед использованием фабрики? – aditya

+0

Угловой не знает о том, что вы делаете внутри обработчика кликов. Поэтому я использовал '$ scope. $ Apply()', чтобы уведомить угловой вызов, который нужно сделать для этой услуги. – AlwaysALearner

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