我正在尝试获取json数组中的第一项,这是我从工厂调用的Web服务获得的。
我的控制器:
CreateProjectIndex.controller('GroupCtrl', ['$scope', 'GetGroups',
function($scope, GetGroups){
$scope.groups = GetGroups.getGroups();
console.log($scope.groups);
console.log($scope.groups[0]);
$scope.group1 = $scope.groups[0];
}]);
我的服务:
'use strict';
var Groups = angular.module('GroupsService', ['ngResource']);
Groups.factory('GetGroups', ['$resource',
function($resource){
return $resource('../../../api/Groups/GetGroups', {}, {
getGroups : {method : 'GET', params:{}, headers: {'Accept': 'application/json;charset=UTF-8'}, isArray : true}
});
}]);
" console.log($ scope.groups);"返回:
[$promise: Object, $resolved: false]
0: Resource
groupId: "361552"
groupName: "1"
__proto__: Resource
>1: Resource
>2: Resource
>3: Resource
>4: Resource
>5: Resource
$promise: Object
$resolved: true
length: 6
__proto__: Array[0]
而"的console.log($ scope.groups [0]);"只返回" undefined"。
有没有办法获得该对象中的第一项?
答案 0 :(得分:2)
getGroup正在返回一个承诺。试试这个。
CreateProjectIndex.controller('GroupCtrl', ['$scope', 'GetGroups',
function($scope, GetGroups){
GetGroups.getGroups()
.then(function(data){
$scope.groups = data;
});
}]);
然后当该请求被“解析”时,$ scope.groups将成为您从该请求返回的数据。
答案 1 :(得分:1)
试试这个。它的工作..
CreateProjectIndex.controller('GroupCtrl', ['$scope', 'GetGroups',
function($scope, GetGroups){
$scope.groups = GetGroups.getGroups();
$scope.groups.$promise.then(function(data) {
alert(data[0].toSource());
});
}]);