2014-01-23 3 views
0

У меня есть переменная $scope.liking. Он обновляется всякий раз, когда кто-то нажимает кнопку «подобный», который вызывает слушателя FB.Event.subscribe.Ручное обновление углового шаблона

controller('LikeCtrl', ['$scope', '$window', function($scope, $window) { 
    var page_like_callback = function(url, html_element) { 
    $scope.liking = true; 
    console.log($scope); 
    }; 

    console.log($scope); 
    FB.Event.subscribe('edge.create', page_like_callback); 
}]); 

В моем шаблоне я есть <p>{{liking}}</p>

Он не будет обновляться, когда FB.Event.subscribe пожары. Я могу видеть с console.log, что область обновления обновлена. Могу ли я ударить его, чтобы заставить шаблон загрузить или изменить код?

ответ

2

Обратный вызов выполняется вне контроля Углового. Вы должны явно оценить выражение в контексте $scope. Вы можете сделать это с помощью $apply:

var page_like_callback = function(url, html_element) { 
    $scope.$apply(function() { 
     $scope.liking = true; 
    }); 
}; 
Смежные вопросы