Javascript 强制角度范围从服务更新

Javascript 强制角度范围从服务更新,javascript,angularjs,Javascript,Angularjs,我已经创建了一个角度控制器和服务。在我的服务中,我有一个数组,当应用程序加载时,该数组开始为空,但稍后填充。在我的控制器中,$scope上有一个指向该数组的属性。当服务中的数组更新时,我假设$scope属性也会更新,DOM也会相应地更新。下面是示例代码 app.controller("myCtlr", ["$scope", "$service", function($scope, $service){ $scope.friends = $service.friends }]); ap

我已经创建了一个角度控制器和服务。在我的服务中,我有一个数组,当应用程序加载时,该数组开始为空,但稍后填充。在我的控制器中,$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
,但是网上没有很多好的例子,所以我还没有完全理解它。非常感谢您的帮助。谢谢

Angular
$http
自动启动摘要周期,您还应
从您的服务中返回朋友,并使用
。然后
继续承诺模式:

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

    var friends = {};

    friends = {

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

    return friends;
});
在控制器中:

$service.friends.get().then(function(data) {
    console.log(data);
});

第一个
var-friends={}是多余的。您应该直接指定下一个对象文本。