我有一個數字文本框。 和另一個文本框列表。我想要的是,輸入的文本框值應與列表中輸入的值的總和進行比較。 我正面臨問題,因爲總價值是由自定義過濾器返回並以跨度顯示。比較angularjs中的值
任何人都可以請幫忙嗎?
這裏是Plunker
(function(angular) {
'use strict';
angular.module('myReverseFilterApp', [])
.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 += isNaN(parseInt(data[i][key])) ? 0 : parseInt(data[i][key]);
}
return sum;
};
})
.controller('MyController', function($scope, $filter) {
$scope.valueArray = [{key:1, value:1},
{key:2, value:2},
{key:3, value:3},
{key:4, value:4},
{key:5, value:5}];
$scope.arrayTotal = $filter('sumByKey')($scope.valueArray,'value');
});
})(window.angular);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<!doctype html>
<html lang="en">
<body ng-app="myReverseFilterApp">
<div ng-controller="MyController">
Sample Value : <input ng-model="greeting" type="number">
<hr>
<table>
<tr ng-repeat="item in valueArray">
<td>{{item.key}}</td>
<td>
<input ng-model="item.value" />
</td>
</tr>
<tfoot>
<tr>
<td>Total</td>
<td>{{arrayTotal}}</td>
</tr>
</tfoot>
</table>
</div>
</body>
</html>
這是你想要的嗎? http://plnkr.co/edit/czT1oW8pUZ2tp9kTMtWy?p=preview – charlietfl