Angular.js:计算数字列表的总和

时间:2015-12-11 16:42:09

标签: angularjs

我需要有一个显示总数的数字列表。当有人在输入框中输入新号码时,该号码将被添加到显示的列表中,总数将相应地改变。

使用angular.js ...

2 个答案:

答案 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>