我在从填充到我的视图中的服务中获取数据时遇到问题。我有一个服务定义为这样AngularJS从服务中加载数据
app.factory('nukeService', function($rootScope, $http) {
var nukeService = {};
nukeService.nuke = {};
//Gets the list of nuclear weapons
nukeService.getNukes = function() {
$http.get('nukes/nukes.json')
.success(function(data) {
nukeService.nukes = data;
});
return nukeService.nukes;
};
return nukeService;
});
和我的控制器
function NavigationCtrl($scope, $http, nukeService){
/*$http.get('nukes/nukes.json').success(function(data) {
$scope.nukes = data;
});*/
$scope.nukes = nukeService.getNukes();
}
如果我使用$ http.get来自控制器的数据填充正常,但是,如果我尝试调用从数据这项服务,我什么也得不到。我明白查询是异步的,但我很难理解如何在数据返回时填充$ scope变量。我可以使用$ rootcope来广播一个事件并在控制器中监听它,但这看起来并不是实现这一点的正确方法。我真的很感激任何关于如何以正确方式做到这一点的建议。
这工作,但我可以问为什么?我假设它与.data有关,它是json数据的容器,而不是直接传递它。顺便说一句,谢谢你的及时回复! – jamesamuir 2013-03-01 16:09:13
如果它正在工作,请将答案标记为接受 – 2013-03-01 16:17:18
标记为已回答。谢谢你的解释。 – jamesamuir 2013-03-01 17:52:17