ng-init和ng-repeat angularjs有问题
我试图循环字段率以获取总数
例如这是我的桌子
纳恩+++++++ id +++++++ rate
乔+++++++++ 1 +++++++ 3
乔+++++++++ 2 +++++++ 3
乔+++++++++ 3 +++++++ 3
乔+++++++++ 4 +++++++ 3
这是我的代码。
<table>
<tr>
<td>name</td>
<td>rate</td>
</tr>
<tr ng-repeat="item in videos">
<td>{{item.name}}</td>
<td ng-init="videos.total.rate = videos.total.rate + item.rate">{{item.rate}}</td>
</tr>
<tr>
<td>Total</td>
<td>{{videos.total.rate}}</td>
</tr>
加在一起时,我得到的结果是3333,而不是12
这是问题所在
<td ng-init="videos.total.rate = videos.total.rate + item.rate">{{item.rate}}</td>
如果我将其更改为数字,则效果很好。
<td ng-init="videos.total.rate = videos.total.rate + 3">{{item.rate}}</td>
您的帮助会很棒。
最佳答案
在控制器中尝试类似这样的操作。
JS
$scope.RateTotal= 0;
for (var i = 0; i < data.length; i++) {
$scope.RateTotal= $scope.RateTotal + data[i].rate;
}
的HTML
<p>{{RateTotal}}</p>
上面的选项更好,但是如果要使用ng-init,请使用类似以下内容。
<table ng-init="RateTotal = 0">
<thead>
<th>Rate</th>
</thead>
<tbody>
<tr ng-repeat="item in videos">
<td ng-init="$parent.RateTotal= $parent.RateTotal + item.rate">{{item.rate}}</td>
</tr>
<tr>
<thead>
<tr>
<th>Total</th>
<th>{{RateTotal}}</th>
</tr>
</thead>
</tr>
</tbody>
</table>
附言
该指令可被滥用以向其中添加不必要的逻辑
您的模板。 ngInit只有少数适当的用法,例如
关于别名ngRepeat的特殊属性,如演示中所示
下面;以及通过服务器端脚本注入数据。除了这些
在少数情况下,您应该使用控制器而不是ngInit进行初始化
范围上的值。 -ngInit
关于javascript - 如何获取ng-init和ng-repeat中的总和-angularjs,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38088788/