angularjs 从父级更改 ng-repeat 嵌套值

angularjs change ng-repeat nested value from parent

当我从 "pens" 或 "Tow"

更改数字时,我想更改嵌套 ng-repeat 中的 "taskAssembly.qnt" 值

看到这个笨蛋。 http://plnkr.co/edit/rKnup0IIPRYvh8JLHXbD?p=preview

查看我的数据:

 { "client": "client1","takeoff": [
{
  "taskName": "ToW",
  "taskQnt": 2300,
  "taskAssembly": [
    {
      "qnt": "",
      "product": "spray",
      "labour": 12,
      "name": "John"
    },
    {
      "qnt": "",
      "product": "strips",
      "labour": 10,
      "name": "John"
    }
  ]
}

我想当我改变 takeOff.taskQnt 时 ng-repeat 中的 taskAssembly.qnt 改变

这个功能不起作用。

$scope.adjustTaskQnt = function (items) {

var test = 0;
for (var i in items) {
  items[i].qnt == $scope.takeOff.taskQnt
   }

return $scope.taskAssembly.qnt;

};

知道如何做到这一点吗?

尝试修改 adjustTaksQnt 函数和模板如下。

$scope.adjustTaskQnt = function($index) {
   angular.forEach($scope.estimate.takeoff[$index].taskAssembly, function(value, key) {
      value.qnt = $scope.estimate.takeoff[$index].taskQnt;
   });
};

HTML 模板

<input type="text" class="qnt" ng-model="takeOff.taskQnt" ng-change="adjustTaskQnt( $index )">

这也可以,只需修改您的功能

$scope.adjustTaskQnt = function (items) {
    //  var test = 0;
    //for (var i in items) {
    // items[i].qnt == $scope.takeOff.taskQnt;
    //}
    for(i=0;i<items.length;i++){

        if(items[i].taskName=="ToW"){
            for(j=0;j<items[i].taskAssembly.length;j++){
                items[i].taskAssembly[j].qnt=items[i].taskQnt;
            }
        }
        else if(items[i].taskName=="Pens"){
            for(j=0;j<items[i].taskAssembly.length;j++){
                items[i].taskAssembly[j].qnt=items[i].taskQnt;
            }
        }
    }
    return $scope.taskAssembly.qnt;
  };