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/

10-12 01:01