4

我昨天将 AngularJS 从 1.0.7 更新到 1.2rc1 以检查新功能。一切正常,但我在使用 ngResource 时遇到了一些问题。有了这些工厂,我得到了一个 json 文件的虚拟数据:

angular.module('RESTServices', ['ngResource'])
    .factory('Customer', function($resource){
      return $resource(base+'customer.json', {}, {
        'query' : { method: 'GET', isArray: true, cache: caching }
      });
    });

我将 RESTService 注入控制器并像这样使用它:

Customer.query({}, function(response){
    $scope.customers = response;
  });

一方面它们是 $scope.customers 中的一组客户,另一方面它们是响应中的附加对象($promise 和 $resolved)。控制台屏幕截图显示了解析对象。

在此处输入图像描述

如果我想迭代响应,迭代器遍历 200 个客户以及 $promise 和 $resolved 对象,我得到错误,因为我的代码不知道如何处理这些对象。在版本 1.0.7 中,响应中只有 200 个客户。

我有什么问题吗?如果不是 $resolved 或 $response,我必须在迭代时检查每个项目吗?文档目前尚不清楚。

4

1 回答 1

1

问题是我如何迭代响应。

我变了

for(item in items){
        for(attr in attributes){
          if(items[item][attributes[attr]].toLowerCase().indexOf(filterString) != -1){
            matchedItems.push(items[item]);
            break;
          }
        }
      }

for(var i = 0; i < items.length; i++){
        for(attr in attributes){
          if(items[i][attributes[attr]].toLowerCase().indexOf(filterString) != -1){
            matchedItems.push(items[i]);
            break;
          }
        }
      }

一切正常。AngularJS 关心正确的长度值,所以我可以将它用于 for 循环,而不是在响应中迭代所有值(包括所有值和 $promise 和 $resolved)。

于 2013-09-05T07:29:05.853 回答