ビューに入力されたサービスからデータを取得する際に問題が発生しています。私はそのように定義されたサービスを持っています
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 を使用してイベントをブロードキャストし、コントローラーでリッスンすることもできますが、これはこれを達成するための正しい方法とは思えません。これを正しい方法で行う方法についてアドバイスをいただければ幸いです。