我正在尝试将Google云端点api放入Angular服务中,以使逻辑更清晰。但是当云端点响应时,我不知道如何让控制器更新模型(从此服务获得的值)。 这是代码: 服务:
angular.module('fooApp').service('FooService', function FooService() {
//variable to keep the data from server
var tl={};
this.retrieve=function(){
//cloud endpoint api callback
var gapiCallback=function(){
gapi.client.fooendpoint.foos.listFoos().execute( function(resp) {
tl=resp.items;
});
};
var apiRoot='https://fooapp.appspot.com/_ah/api';
gapi.client.load('fooendpoint', 'v1', gapiCallback, apiRoot);
};
this.get=function(){
console.log(tl);
return tl;
}
});
控制器:
angular.module('fooApp').controller('DeviceCtrl', function ($scope,FooService) {
FooService.retrieve();
$scope.myFoos =FooService.get();
});
查看:
<ul class="nav nav-list">
<li ng-repeat="t in myFoos ">
<ul>
<li >Foo attr1 = {{t.attr1}}</li>
<li >Foo attr2 = {{t.attr2}}</li>
</ul>
</li>
</ul>
提前致谢。
答案 0 :(得分:0)
在FooService.get()
中填写$apply
来启动摘要周期,以便用户界面更新。
$scope.$apply(function() {
$scope.myFoos = FooService.get();
});