Angular服务中的云端点

时间:2013-09-15 02:11:21

标签: angularjs google-cloud-endpoints

我正在尝试将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>

提前致谢。

1 个答案:

答案 0 :(得分:0)

FooService.get()中填写$apply来启动摘要周期,以便用户界面更新。

$scope.$apply(function() {
    $scope.myFoos = FooService.get();
});