如何在全局回调函数中触发angularjs页面刷新?

时间:2013-06-14 16:59:11

标签: javascript angularjs angularjs-scope

我目前正在使用jsonp与google api进行交互,所以我需要一个全局回调函数。如何在回调函数中触发页面更新?

我已尝试$timeout$scope.$apply,但它们似乎无效。

在我的控制器中,我有类似

的东西
var App = window.App = angular.module('App', ["App.controllers"]);
angular.module('App.Controllers', [])
    .controller("LoginController", ["$scope", function($scope) {
        window.gplusUserCallback = function(data) {
            $timeout(function() {
                $scope.user = data;
                console.log("gplusUserCallback", $scope.user);
            });
        };
    }]);

但是$scope.user似乎没有触发刷新。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如果您想在触发全局回调后更新角度范围,则必须手动更新范围。

// If you do have access to your scope via $scope
$scope.$digest();

// If you don't have access to the scope
var element = document.getElementById('dashboard');
// Get the scope for your element where your controller is bound to
var scope = angular.element(element).scope();
scope.$digest();