强制角度范围从服务更新

时间:2013-10-31 16:17:32

标签: javascript angularjs

我创建了一个角度控制器和服务。在我的服务中,我有一个数组在应用程序加载时以空白开始,但稍后会填充。在我的控制器中,我在$ scope上有一个指向该数组的属性。当服务中的数组被更新时,我假设$ scope属性也将被更新,DOM将相应地更新。这是示例代码。

app.controller("myCtlr", ["$scope", "$service", function($scope, $service){

   $scope.friends = $service.friends

}]);

app.factory("$service", function($http){

   var friends = {};

   friends = {

      get: function(){
        $http.get("/someurl").success(function(data){

           // data is the array of friends
           friends = data; 

        });           
      }

   };



});

我尝试过使用angular.extend,但网上没有很多很好的例子,所以我还没有完全理解它。任何帮助深表感谢。谢谢!

1 个答案:

答案 0 :(得分:2)

Angular $http自动启动摘要周期,您还应该{1}}来自您的服务,并使用return friends继续承诺模式:

.then

在你的控制器中:

app.factory("$service", function($http){

    var friends = {};

    friends = {

    get: function(){
        $http.get("/someurl").then(function(data){
            return data.data
        });    
    }

    return friends;
});