AngularJs中请求到数据后在controller中怎么取出数据供HTLM页面循环使用
我在AngularJs的service服务里,使用$http.post请求请求到数据后,在controller里注入服务,然后使用循环把data数据push到一个数组中,...
我在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: 'xxxx://localhost:8080/WebRest/test/xxxx'}).
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不久,不太懂,希望大神不要嫌弃 ^_^
问题已解决 展开
代码如下:
// $q 是内置服务,所以可以直接使用
ngApp.service('UserInfo', ['$http', '$q', function ($http, $q) {
return {
query : function() {
var deferred = $q.defer();
$http({method: 'GET', url: 'xxxx://localhost:8080/WebRest/test/xxxx'}).
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不久,不太懂,希望大神不要嫌弃 ^_^
问题已解决 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询