我在使用angularjs进行用户输入后更新值时遇到问题。我给用户一个网格来输入数字,在每次按键后,我想将该列加总并显示在列标题中。过滤器适用于表的初始值,但在将新数字输入表时不会更新。有没有办法刷新元素?
<th>total<small>{{Rows|sumByKey:'ColOne'}}</small></th> ....
<tr ng-repeat="Row in Rows">
<td><input type="text" value="{{Row.ColOne}}"/></td>
</tr>
Angularjs过滤器:
app.filter('sumByKey', function () {
return function (data, key) {
if (typeof (data) === 'undefined' || typeof (key) === 'undefined') {
return 0;
}
var sum = 0;
for (var i = data.length - 1; i >= 0; i--) {
sum += parseInt(data[i][key]);
}
//filter.$stateful = true;
return sum;
};
});
答案 0 :(得分:1)
我相信你需要绑定你的价值以使角度意识到变化。
在输入上使用ng-model
来设置值。通过这种方式,Angular可以控制所有值。
<th>total<small>{{Rows|sumByKey:'ColOne'}}</small></th> ....
<tr ng-repeat="Row in Rows">
<td><input type="text" ng-model="Row.ColOne"/></td>
</tr>