我无法从AngularJS资源中获取索引项

时间:2013-06-09 23:10:40

标签: angularjs

我有以下控制器:

.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,但我想通过索引选择项目,并假设我会得到一个数组,我可以用它来做。

我的方法是什么类型的对象是'卡'返回,我如何从中获取数组?

1 个答案:

答案 0 :(得分:1)

isArray: true方法会给你一个承诺,你不能直接对它们采取行动。

你可以传递一个功能。

var cards = Card.getAll(function () { cards[0]; });