Angularjs 如何从ng repeat指令创建数字总和
我试图对一列数字求和,但当我使用下面的代码时,“总计”字段为空。有没有想过我可能做错了什么 HTML:Angularjs 如何从ng repeat指令创建数字总和,angularjs,angularjs-ng-repeat,Angularjs,Angularjs Ng Repeat,我试图对一列数字求和,但当我使用下面的代码时,“总计”字段为空。有没有想过我可能做错了什么 HTML: 似乎您正在使用controllerAs语法,例如ng controller=“ProjectListCtrl as projectList” 这样,您就需要从视图中调用projectList.total(),而不仅仅是total()我觉得错过了这个选项太愚蠢了。非常感谢。但是我注意到,我没有得到这些数字的总和。相反,数字是串联的。例如,如果原始数字是30.00和20.00,则我在总计列中得到的
似乎您正在使用
controllerAs
语法,例如ng controller=“ProjectListCtrl as projectList”
这样,您就需要从视图中调用
projectList.total()
,而不仅仅是total()
我觉得错过了这个选项太愚蠢了。非常感谢。但是我注意到,我没有得到这些数字的总和。相反,数字是串联的。例如,如果原始数字是30.00
和20.00
,则我在总计列中得到的是30,20.00
,而不是50.00
。我是否应该发布一个与此相关的单独问题?您不必发布单独的问题,您的cost
属性必须是字符串。请确保您的服务返回的是实际的数字,例如,4
而不是“4”
,或者将字符串转换为数字,即,total+=parseFloat(project.type.cost)
——最好的方法是从您的服务返回正确的数据类型,即方法1
<tr ng-repeat="project in projectList.projects>
<td>{{project.description}}</td>
<td>{{project.type.cost | currency}}</td>
</tr>
<h2>Total: {{ total() | currency }}</h2>
myApp.controller('ProjectListCtrl', function ProjectListCtrl(Projects) {
var projectList = this;
projectList.total = function(){
var total = 0;
angular.forEach(projectList.projects, function(project) {
total += project.type.cost;
});
return total;
};
})