【发布时间】:2013-09-24 18:56:30
【问题描述】:
我正在使用带有 AngularJS 的 Restangular,我想在控制器的一个函数中迭代一个集合,我需要修改一个由 Restangular 返回的集合:
var OrderController = [ '$scope', '$http', 'Restangular',
function($scope, $http, Restangular) {
$scope.orders = Restangular.all('orders').getList();
$scope.toggleOrder = function(order) {
_.forEach($scope.orders, function(order) {
console.log(order); // This is not an order!
order.someProperty = false; // My goal
});
});
}];
我认为问题在于$scope.orders 是一个promise,而不是一个实际的数组,所以_.forEach 尝试迭代promise 的属性而不是对象。我得到与angular.forEach 相同的结果。
如何迭代 Restangular 资源集合?我也想访问lodash的所有收集功能,比如_.filter。
【问题讨论】:
-
不要将 forEach 用于副作用以外的其他事情。在这里使用 map()。
标签: javascript angularjs restangular lodash