我是角度世界的初学者 我面临的问题是我有一个自定义数组($ scope.picking.operations),我可以向这个数组添加许多对象(布尔发送设置为false),然后有一个按钮将此数据发送到服务器通过angular的$ resource服务,并且在成功回调中我想将此布尔值更改为true; 但是console.info(op)返回数组的第一个元素,而不是当前元素 任何想法将不胜感激。谢谢。
$scope.sendToServer = function() {
ops = utils.reduceArrayByMoveId($scope.picking.operations); // Custom service returns [{..}, {..}, ...]
$scope.picking.operations = ops;
for (var i = 0, len = $scope.picking.operations.length; i < len; i++) {
op = $scope.picking.operations[i];
if (op.sent) {
continue;
}
op_to_create = {
stock_move_id: op.stock_move_id,
quantity: op.quantity,
}
console.log("Operation to create: ", op_to_create);
var tra = new Transaction(op_to_create);
tra.$save(
function(value, responseHeaders) {
console.info(value);
op.sent = true;
console.info(op);
},
function(httpResponse) {
notice = 'Conection Error: [' + httpResponse.status + ']: ' + (httpResponse.statusText||'Connection refused');
$state.go('404', {obj: {info: notice}});
});
}
};
答案 0 :(得分:0)
这里解释了我在这个问题中遇到的javascript闭包问题:Javascript closure inside loops,实际上问题已经解决,实现了angular.forEach。