当我从“笔”或“拖”更改数字时,我想更改嵌套ng-repeat中的“taskAssembly.qnt”值
看到这个plunker。 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;
};
任何想法如何做到这一点?
答案 0 :(得分:0)
尝试按如下方式修改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 )">
答案 1 :(得分:0)
这也可以,只需修改你的功能
$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;
};