簡體   English   中英

Angular.js:用戶輸入后更新過濾器

[英]Angularjs: update filter after user input

我在使用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;
    };
});

我相信,您需要約束您的價值,以敏銳地意識到變化。 在輸入上使用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>

這是它運行的一個小工具

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM