我有以下控制器:
.controller( 'AppCtrl', function AppCtrl ( $scope, $location, $resource ) {
var Card = $resource('http://localhost/card/:cardId',
{
'cardId': "@_id"
},
{
getAll: {
method: 'GET',
transformResponse: function (data) {
return angular.fromJson(data)._items;
},
isArray: true
}
});
$scope.allCards = Card.getAll();
console.log($scope.allCards);
console.log($scope.allCards[0]);
现在,在控制台上,两条打印的行显示:
[$resolved: false, $then: function]
> 0: c
> 1: c
> 2: c
> 3: c
> 4: c
> 5: c
> 6: c
> 7: c
> 8: c
> 9: c
> 10: c
> 11: c
> 12: c
> 13: c
$resolved: true
> $then: function (callback, errback) {
length: 14
> __proto__: Array[0]
作为$ scope.allCards的值,但'undefined'作为$ scope.allCards [0]的值。 我可以将$ scope.allCards传递给ng-repeat,但我想通过索引选择项目,并假设我会得到一个数组,我可以用它来做。
我的方法是什么类型的对象是'卡'返回,我如何从中获取数组?
答案 0 :(得分:1)
isArray: true
方法会给你一个承诺,你不能直接对它们采取行动。
你可以传递一个功能。
var cards = Card.getAll(function () { cards[0]; });