我在從填充到我的視圖中的服務中獲取數據時遇到問題。我有一個服務定義爲這樣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