给定 angular.js 服务:
angular.module('mymodule').factory('Products', ['$resource',
function($resource) {
return $resource('/path/to/getProducts', {}, {
find: {
method: 'GET',
isArray: false
}
});
}
]);
在mymodule
我find
查询的控制器中:
$scope.findAll = function () {
Products.find(function (products) {
console.log(Object.keys(products));
// ['prodA', 'prodB', ... , '$promise', '$resolved']
for (var i in products) {
if (!products.hasOwnProperty(i)) continue;
console.log(products[i].description.someprop);
// Got error: Cannot read property 'someprop' of undefined
// Trust me: I debug this place. someprop is defined for all items except that two
}
});
};
它工作正常,但返回 $promise 和 $resolved 与数据集,所以我不能循环通过我的数据。
Angular 文档说实例和集合Resource
具有这些附加属性。但我不明白如何在我的代码中控制它。
我究竟做错了什么?如何预防?