Javascript 如何获得ng init和ng repeat-angularjs中的总和

Javascript 如何获得ng init和ng repeat-angularjs中的总和,javascript,angularjs,angularjs-directive,ionic-framework,Javascript,Angularjs,Angularjs Directive,Ionic Framework,在ng init和ng repeat angularjs中存在问题 我正在尝试循环字段速率以得到总数 例如,这是我的桌子 nane+id+rate 乔+1+3 乔+2+3 joe+++3++3 乔+4+3 这是我的密码 <table> <tr> <td>name</td> <td>rate</td> </tr> <tr ng-repeat="item in videos"> <td&g

在ng init和ng repeat angularjs中存在问题

我正在尝试循环字段速率以得到总数

例如,这是我的桌子

nane+id+rate

+1+3

+2+3

joe+++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>

名称
率
{{item.name}
{{item.rate}
全部的
{{videos.total.rate}

我得到的结果是3333,而不是12

这就是问题所在

<td ng-init="videos.total.rate = videos.total.rate + item.rate">{{item.rate}}</td>
{{item.rate}
如果我把它改成一个数字,就可以了

<td ng-init="videos.total.rate = videos.total.rate + 3">{{item.rate}}</td>
{{item.rate}

您的帮助太好了。谢谢将此逻辑移到控制器中。这就是它的目的。视图应显示数据

现在,您必须担心如何将字符串转换为整数,并用angular必须解释为javascript的语言编写4倍以上的代码

您在这里添加的复杂性将非常有趣



但您可能希望继续出错,在这种情况下,应该可以这样做:

将此逻辑移到控制器中。这就是它的目的。视图应显示数据

现在,您必须担心如何将字符串转换为整数,并用angular必须解释为javascript的语言编写4倍以上的代码

您在这里添加的复杂性将非常有趣



但您可能想继续做错事,在这种情况下,应该可以这样做:

定义一个过滤器来计算总数:

app.filter('calculateRateTotal',function(){
    return function(input){
        var total = 0;
        angular.forEach(input,function(value,key){
            total = total+value.rate;
        });
        return total;
    };
});
HTML:


定义一个过滤器来计算总数:

app.filter('calculateRateTotal',function(){
    return function(input){
        var total = 0;
        angular.forEach(input,function(value,key){
            total = total+value.rate;
        });
        return total;
    };
});
HTML:


在控制器中尝试类似的操作

JS

$scope.ratecotal=0;
对于(变量i=0;i
HTML

{{RateTotal}


上面的选项更好,但如果您想使用请使用类似的选项

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

比率
{{item.rate}
全部的
{{RateTotal}}
附言

此指令可能被滥用,以便在系统中添加不必要的逻辑量 你的模板。ngInit只有几个合适的用途,例如 至于ngRepeat的别名特殊属性,如演示中所示 在下面以及通过服务器端脚本注入数据。除此之外 在少数情况下,应该使用控制器而不是ngInit进行初始化 作用域上的值。-


在控制器中尝试类似的操作

JS

$scope.ratecotal=0;
对于(变量i=0;i
HTML

{{RateTotal}


上面的选项更好,但如果您想使用请使用类似的选项

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

比率
{{item.rate}
全部的
{{RateTotal}}
附言

此指令可能被滥用,以便在系统中添加不必要的逻辑量 你的模板。ngInit只有几个合适的用途,例如 至于ngRepeat的别名特殊属性,如演示中所示 在下面以及通过服务器端脚本注入数据。除此之外 在少数情况下,应该使用控制器而不是ngInit进行初始化 作用域上的值。-


经过10个小时的不走运,我的朋友终于成功了。变得很简单

这是代码

在添加的控制器中

$scope.getTotal = function(){
var total = 0;
for(var i = 0; i < $scope.videos.length; i++){
    var item = $scope.videos[i];
    total += (item.rate*1);
}
return total;   }
$scope.getTotal=function(){
var合计=0;
对于(变量i=0;i<$scope.videos.length;i++){
var item=$scope.videos[i];
总计+=(项目费率*1);
}
返回总数;}
和HTML

<table>

        <tr>
            <th>Rate</th>
        </tr>


        <tr ng-repeat="item in videos">
            <td>{{item.rate}}</td>

        </tr>           
        <tr>              
            <td>Total: {{ getTotal() }}</td> 
        </tr>

    </table>

比率
{{item.rate}
总计:{{getTotal()}}

感谢大家的帮助

经过10个小时的运气不佳,我的朋友终于成功了。变得很简单

这是代码

在添加的控制器中

$scope.getTotal = function(){
var total = 0;
for(var i = 0; i < $scope.videos.length; i++){
    var item = $scope.videos[i];
    total += (item.rate*1);
}
return total;   }
$scope.getTotal=function(){
var合计=0;
对于(变量i=0;i<$scope.videos.length;i++){
var item=$scope.videos[i];
总计+=(项目费率*1);
}
返回总数;}
和HTML

<table>

        <tr>
            <th>Rate</th>
        </tr>


        <tr ng-repeat="item in videos">
            <td>{{item.rate}}</td>

        </tr>           
        <tr>              
            <td>Total: {{ getTotal() }}</td> 
        </tr>

    </table>

比率
{{item.rate}
总计:{{getTotal()}}

感谢大家的帮助

个人费率的价值是什么?我怀疑
ng init
对您的案例不起作用。它们的费率都是3333。我不认为
ng init
将每个新项目视为
ng repeat
迭代。Yoh可能想将求和逻辑移到您的控制器中。我如何将其强制转换或解析为int?它似乎将3连接到3333,而不是添加3+3+3+3,以得到12的总数。
{{item.rate}
------
{item.rate}
各个速率的值是多少?我怀疑
ng init
对您的案例不起作用。它们的费率都是3333。我不认为
ng init
将每个新项目视为
ng repeat
迭代。Yoh可能希望将求和逻辑移到控制器中。我如何将其强制转换或解析为int它似乎将3连接到3333,而不是将3+3+3+3相加,得到12的总数。
{{item.rate}