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