Javascript 如何使用AngularJS动态获取文本框值
我按照以下教程在Angular中添加了两个值; 但现在我必须对ng repeat中的动态文本框值求和 我有以下代码 HTML代码Javascript 如何使用AngularJS动态获取文本框值,javascript,angularjs,Javascript,Angularjs,我按照以下教程在Angular中添加了两个值; 但现在我必须对ng repeat中的动态文本框值求和 我有以下代码 HTML代码 ...... <table> <tr> <th>Name</th> <th>Days</th> </tr> <tr ng-r
......
<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>
.......
.........
$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
}
........
$scope.totalDays = function(){
var totalDays = 0;
angular.forEach( $scope.serImp, function(si){
if(si.Days && !isNaN(si.Days)){
totalDays += Number(si.Days);
}
})
}
我的问题是:如何从ng model=“si.Days”中获取值/数字的总和,使用reduce对所有天数进行汇总。 使用ng模型修改值时,您正在操作
$scope.serImp
数组。然后可以使用这些值来计算总和
$scope.sum = function () {
return $scope.serImp.reduce(function(prv, cur) {
return prv.Days + cur.Days;
});
}
Reduce获取一个数组,并通过对其所有元素应用一个函数将其缩减为一个值。在我们的例子中,只是简单地把所有的日子加起来
我将创建一个函数,该函数将返回所有天数总和,并将直接绑定到html
{{totalDays()}}
代码
......
<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>
.......
.........
$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
}
........
$scope.totalDays = function(){
var totalDays = 0;
angular.forEach( $scope.serImp, function(si){
if(si.Days && !isNaN(si.Days)){
totalDays += Number(si.Days);
}
})
}