初めてAngularJSを試しています。ファクトリを使用して http-get リクエストから JSON データを取得していますが、ajax-request が完了する前にオブジェクトが空で返されます。
工場:
myDemo.factory('photosFactory', function($http) {
var photos = [];
var factory = {};
factory.getPhotos = function() {
$http({
url: 'content/test_data.json',
method: 'GET'
}).success(function(data, status, headers, config) {
photos = data;
return photos;
});
};
return factory;
});
コントローラ:
controllers.AppCtrl = function($scope, $location, $http, photosFactory) {
$scope.photos = [];
init();
function init() {
$scope.photos = photosFactory.getPhotos();
}
};
これが私が思いついたものです。コントローラーが $scope.photos を設定すると、ajax 応答が取り込まれる前に photos 配列を返すかのように、値は空になります。