0

我有以下控制器:

.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,但我想按索引挑选项目,并假设我会得到一个可以执行此操作的数组。

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

4

1 回答 1

1

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

你可以给它传递一个函数。

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

于 2013-06-09T23:42:08.867 回答