我需要有一个显示总数的数字列表。当有人在输入框中输入新号码时,该号码将被添加到显示的列表中,总数将相应地改变。
使用angular.js ...
答案 0 :(得分:3)
尽管itamar的回答毫无疑问,但您可以这样写(在我看来有点干净):
<强>控制器强>
使用reduce
进行总计算:
$scope.numbers = [1,2,3];
$scope.updateTotal = function () {
$scope.total = numbers.reduce(function (total, number) {
if (number) {
total += number;
}
return total;
}, 0);
};
<强>标记强>
<span>{{ total }}</span>
<ul>
<li ng-repeat="number in numbers">
<input type="number" ng-model="number" ng-change="updateTotal()">
</li>
</ul>
由于您知道何时应更新总值,因此最好在此处使用ng-change
,以便仅在需要时进行计算。
在旁注中,您可以在输入中使用type="number"
,因此只能输入数字。
答案 1 :(得分:1)
欢迎使用StackOverflow - 下次请提供您自己编写的一些代码。在此期间 - 我为你写了你的: - )
控制器中的JS:
$scope.numbers = [1,2,3];
$scope.getTotals = function(){
var total = 0;
total = $scope.numbers.reduce(function(prev, curr) {
return prev + curr;
});
return total;
}
HTML:
<ul>
<li ng-repeat="number in numbers"><input ng-model="number"></li>
<li>{{getTotals()}}</li>
</ul>