我在AngularJs的service服務裡,使用$http.post請求請求到數據後,在controller裡注入服務,然後使用循環把data數據push到一個數組中,可是在谷歌浏覽器的控制台中只能看到是個[]空數組,ng-repeat也沒有循環出來內容,請問這個值我該怎麼取得?
代碼如下:
// $q 是內置服務,所以可以直接使用
ngApp.service('UserInfo', ['$http', '$q', function ($http, $q) {
return {
query : function() {
var deferred = $q.defer();
$http({method: 'GET', url: 'http://localhost:8080/WebRest/test/query'}).
success(function(data, status, headers, config) {
deferred.resolve(data);
}).
error(function(data, status, headers, config) {
deferred.reject(data);
});
return deferred.promise;
}
};
}]);
controller中
ngApp .controller('MainCtrl', ['$scope', 'UserInfo', function ($scope, UserInfo) {
$scope.goods = [];
var promise = UserInfo.query();
promise.then(function(data) {
for(var i=0;i<data.length;i++){
$scope.goods.push(data[i]); //這裡的data是有值的
}
}, function(data) {
$scope.user = {error: '用戶不存在!'};
});
}]);
console.log($scope.goods);//在這裡就是[],沒有值
請問這是為什麼?我也是剛接觸AngularJS不久,不太懂,希望大神不要嫌棄 ^_^
已解決,是我自己大意了,這樣就可以訪問到數據