私は角度の専門家ではなく、これを解決するための他のオプションがあるかもしれません。ただし、これは私があなたの問題を解決した方法です:
行/行ごとにモデル (オブジェクト) を作成して、後で計算のために値にアクセスできるようにすることができました。次に、そのモデルをページにレンダリングします。各変更イベントで合計を計算します。あなたがそれを拡張できるという単なるアイデア。
// Initialize to 3 and create 3 models for it. A model
// has ID the name of the field and so on, you add other fields to it.
$scope.cntInputs = 3;
$scope.inputs = [];
for(var i=1; i <= $scope.cntInputs; i++){
$scope.inputs.push({id:i,pesco:'',zuccheri:''});
}
// call this when you want to increase the `Numero ingredienti`
$scope.addModel = function (){
$scope.inputs.push({id:$scope.cntInputs-1,pesco:'',zuccheri:''});
}
// call this whenever you have a change on each model.
$scope.calculate = function() {
var sum =0;
for(i=0; i <$scope.inputs.length; i++) {
sum += Number($scope.inputs[i].pesco)
$scope.inputs[i].zuccheri = 100; // XX * peso/100 calculate however you want
}
$scope.sum = sum;
};
/ html 本文
<body>
<div ng-controller="bxController" id="content">
<h1>Bilanciamento</h1>
Numero ingredienti: <input type="number" ng-change="addModel()" ng-model="cntInputs" placeholder="#Inputs"><br/>
<table>
<tr>
<th>Ingrediente</th>
<th>Peso</th>
<th>Zuccheri</th>
<th>Grassi</th>
<th>SML</th>
<th>Altri Solidi</th>
<th>Totale Solidi</th>
<th>Acqua</th>
</tr>
//just to display how its working {{inputs}}
<tr ng-repeat="c in inputs" type="text" name="myForm">
<td>
<select
ng-change="selectAction()"
ng-model="value"
ng-options="value.ingrediente for value in ingredienti">
<option>--</option>
</select>
</td>
<td>
<input ng-model="c.pesco" ng-change="calculate()" ></input>
</td>
<td> {{c.zuccheri | number}} g</td>
<td>{{value.grassi * peso / 100 | number}} g</td>
<td>{{value.sml * peso / 100 | number}} g</td>
<td>{{value.altrisolidi * peso / 100 | number}} g</td>
<td>{{value.totalesolidi * peso / 100 | number}} g</td>
<td>{{value.H2O * peso / 100 | number}} g</td>
</tr>
</table>
risultato:({{sum}})
</div>
</body>