我认为这应该可以解决您的问题
app.factory('nukeService', function($rootScope, $http) { var nukeService = {}; nukeService.data = {}; //Gets the list of nuclear weapons nukeService.getNukes = function() { $http.get('nukes/nukes.json') .success(function(data) { nukeService.data.nukes = data; }); return nukeService.data; }; return nukeService;});function NavigationCtrl($scope, $http, nukeService){ $scope.data = nukeService.getNukes(); //then refer to nukes list as `data.nukes`}
调用时,您
nukeService.getNukes()获得对一个对象的引用,
a然后您的变量
$scope.nukes引用该内存位置。
在设置了远程服务器之后,
nukeService.nukes =data;您不需要更改对象,
a而是
nukeService.nukes从引用对象更改
a为对象
b。但是您
$scope.nukes不知道这种重新分配,它仍然指向对象
a。
在这种情况下,我的解决方案是传递
a具有属性的对象,
data然后仅更改数据属性,而不是更改对
a
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)