2016-03-08 64 views
0

我在使用angularjs進行用戶輸入後更新了一個值。我給用戶一個網格輸入數字,並在每次按鍵後,我想總結該列並將其顯示在列標題中。該過濾器適用於表的初始值,但在將新數字輸入到表中時不會更新。有沒有辦法刷新元素?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; 
    }; 
}); 

回答

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> 

這是plunker for it running