angular $ resource使用实际数组变量调用成功回调?

时间:2015-12-17 03:34:37

标签: angularjs angularjs-scope

我是角度世界的初学者 我面临的问题是我有一个自定义数组($ 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}});
      });
    }
  };

1 个答案:

答案 0 :(得分:0)

这里解释了我在这个问题中遇到的javascript闭包问题:Javascript closure inside loops,实际上问题已经解决,实现了angular.forEach