请查看此fiddle
我要做的是计算/更新嵌套ng-repeat中每列的总数:
<tr ng-repeat="cust in customers">
<td>{{cust.name}}</td>
<td ng-repeat="book in books">
<p ng-init="index=getIndex(book.id, cust.id)"></p>
<input ng-model="qtys[index].qty">
</td>
</tr>
<tr>
<td>Total</td>
<td ng-repeat="book in books">
<input type=text value="{{sumQty(book.id)}}">
</td>
</tr>
我有两个问题需要解决:
输入框现在显示我的数组中的正确值。我正在尝试使用ng-init来首先根据我传入的custId和bookId从数组中获取索引:
<p ng-init="index=getIndex(book.id, cust.id)"</p>
<input ng-model="qtys[index].qty">
我想我不确定如何正确绑定ng-model
请帮忙。感谢。
答案 0 :(得分:2)
你几乎是对的。问题出在你的getIndex方法中 - 你在那里做的返回不会从getIndex返回,它只是退出传递给forEach的函数。如果您这样修改它,它将起作用
$scope.getIndex = function(bookId, custId) {
var index = null;
angular.forEach($scope.qtys , function(item, idx) {
if (item.bookId == bookId && item.custId == custId) {
index = idx;
};
});
return index;
};
scope.sumQty似乎未完成(它将列表作为参数,但您将id传递给它)。修复它的一种方法是让它接受id而不是
$scope.sumQty = function(id) {
var total=0;
angular.forEach($scope.qtys , function(item){
if(item.bookId == id) {
total+= parseInt(item.qty);
}
});
return total;
}