我有一个角度js应用程序。我正在使用gapi登录,然后调用我的谷歌云端点来获取数据。登录的东西工作正常,它也可以从端点获取数据。
但是在获取数据之后,如果我将数据分配给$scope
变量(绑定到UI),则它不会更新UI。甚至没有错误。以下是我的代码段。有什么想法吗?
function TestCtrl($scope){
$scope.contactsList = [];//UI template is bound to this list
//Assuming the gapi client is already loaded
gapi.client.contactendpoint.list().execute(function(resp) {
if (!resp.code) {
$scope.contactsList = resp.items;//Does not update ui list
} else {
alert("Error, response is: "
+ angular.toJson(resp));
}
});
}
此致 Nadeem Ullah
答案 0 :(得分:3)
如果您希望从角度框架外部更新范围(例如,从浏览器DOM事件,setTimeout,XHR或第三方库),则需要使用$ apply()。 有关详情,请访问http://docs.angularjs.org/api/ng.$rootScope.Scope。
function TestCtrl($scope){
$scope.contactsList = [];//UI template is bound to this list
//Assuming the gapi client is already loaded
gapi.client.contactendpoint.list().execute(function(resp) {
if (!resp.code) {
$scope.$apply(function(scope) {
scope.contactsList = resp.items;
});
} else {
alert("Error, response is: " + angular.toJson(resp));
}
});
}