Angularjs为什么$ scope.products不更新控制器中的数据

时间:2016-04-06 08:57:23

标签: angularjs view model scope controller

我有问题,你能帮助我吗?我在下面有2个视图。在第一个,我使用表,$ scope.products可以在更改值输入product.pick_qty时更新数据。但是在秒视图中,我使用list,$ scope.products无法更新。 第一个视图html

<div class="row" ng-repeat="product in products">
        <div class="col col-40">
          <span>{{`product.product_name`}}</span></br>
          <span class="italic">Size: {{product.size}}, </span>
          <span class="italic">Color: {{product.color}}</span>
        </div>
        <div class="col col-20">{{`product.barcode`}}</div>
        <div class="col col-20">{{product.request_qty}}</div>
        <div class="col col-20"><input type="text" class="col-50 pick_qty" ng-model="product.pick_qty" /></div>
      </div>

秒视图html

  <div class="list animate-fade-slide-in-right" ng-repeat="product in products ">
    <a class="item item-icon-right in">
      <h2>{{product.product_name}}</h2>
      <p>
        <span class="italic">Size: {{product.size}}, </span>
        <span class="italic">Color: {{product.color}}, </span>
        <span class="italic">Request Qty: {{product.request_qty}}</span>
      </p>
      <label class="item-input item-floating-label">
        <span class="input-label">Pick Qty</span>
        <input type="text" placeholder="Pick Qty" ng-model="product.pick_qty" >
        pick_qty: {{product.pick_qty}}
        products :{{products}}
      </label>
    </a>
  </div>

这是我的控制器(我从服务器获得的$ scope.products具有相同的结构),当我更改值输入时,我想要$ scope.products更新字段pick_qty。

$scope.products = [
      {
        barcode: null,
        color: "Black",
        product_id: "528",
        product_name: "TriBeCa Skinny Jean",
        request_qty: 10,
        size: "27"
      },
      {
        barcode: null,
        color: "Black",
        product_id: "370",
        product_name: "Isla Crossbod",
        request_qty: 10,
        size: "27"
      }
    ];
var addParamsConfirm = function(){
      var paramsConfirm = {};
      paramsConfirm.data = [];
      angular.forEach($scope.products, function(product){
          angular.forEach(listPicked, function(item){
            if(product.product_id === item.product_id){
              if( product.pick_qty <= ( product.request_qty - item.picked_qty )){
                paramsConfirm.data.push({
                  product_id: product.product_id,
                  qty: product.pick_qty
                });
                paramsConfirm.action = action.pick;
                paramsConfirm.shop_id = 'BBB';
              }
            }
            else {
              if( (product.pick_qty > 0) && (product.pick_qty <= product.request_qty)){
                paramsConfirm.data.push({
                  product_id: product.product_id,
                  qty: product.pick_qty
                });
                paramsConfirm.action = action.pick;
                paramsConfirm.shop_id = 'BBB';
              }
            }
          })
      });
      return paramsConfirm;
    }

0 个答案:

没有答案