Я хочу изменить значение "taskAssembly.qnt" во вложенном ng-повторе, когда я меняю номер на "ручки" или "Буксировка",
см. этот плункер. 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 taskAssembly.qnt в ng-repeat, чтобы изменить
Эта функция не работает.
$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;
};