javascript - 如何使用 AngularJS 动态获取文本框值

标签 javascript angularjs

我按照以下教程在 Angular 中添加了两个值; Addition of Two Numbers in AngularJS

但现在我必须在 ng-repeat 中对动态文本框值求和。

我有以下代码

HTML 代码

 ......
        <table>
            <tr>
                <th>Name</th>
                <th>Days</th>
            </tr>
            <tr ng-repeat="si in serImp">
                <td>{{si.Name}}</td>
                <td><input type="number" ng-model="si.Days" /></td>
            </tr>
        </table>
        .......
        <button ng-click="sum()">Calculate</button>
        .......

JS代码

.........
        $scope.serImp = [];
        $scope.serImp = data;
                // here data is object contain multiple Name+Durations e.g. 
        /*data = 
        [0]
   Name:"first"
   Days: 1
[1]
   Name:"second"
   Days: 2
[2]
   Name:"third"
   Days: 3*/

         $scope.sum = function () {
// sum code goes here
    }
    ........

我的问题是:如何从 ng-model="si.Days"中获取值/数字的总和

最佳答案

使用reduce来总结所有的日子。 当您使用 ng-model 修改值时,您正在操作 $scope.serImp 数组。然后,您可以使用这些值来计算总和。

$scope.sum = function () {
     return $scope.serImp.reduce(function(prv, cur) { 
         return prv.Days + cur.Days; 
     });
}

Reduce 接受一个数组,并通过对它的所有元素应用一个函数将其缩减为一个值。在我们的例子中,只需将所有天数相加即可。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce

关于javascript - 如何使用 AngularJS 动态获取文本框值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35391476/

相关文章:

javascript - jQuery 验证插件检查不同行之间的输入

javascript - Highcharts - setData() 未正确更新柱形图 - 难住了

javascript - 如何在 AngularJS 中正确保护密码

php - JSON 与 PHP Slim 和 AngularJS

javascript - HTML5 视频格式最佳实践

javascript - 如何使用 Spotify Web API 制作音频播放器?

javascript - 如何在angularjs中将负数显示为正数

javascript - 加载数据时如何正确阻止 AngularJS 中的接口(interface)?

javascript - 为什么在 Controller 中与指令结合使用函数时需要 $watch

javascript - 错误 : [ng:areq] http://errors. angularjs.org/1.4.4/ng/areq?p0=FirstCtrl&p1=not%20a%20function%2C%20got%20undefined?