我创建了一个角度控制器和服务。在我的服务中,我有一个数组在应用程序加载时以空白开始,但稍后会填充。在我的控制器中,我在$ 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
,但网上没有很多很好的例子,所以我还没有完全理解它。任何帮助深表感谢。谢谢!
答案 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;
});