我在从填充到我的视图中的服务中获取数据时遇到问题。我有这样定义的服务
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 变量。我可以使用 $rootscope 广播一个事件并在控制器中监听它,但这似乎不是完成此任务的正确方法。我非常感谢有关如何以正确方式执行此操作的任何建议。