感谢阅读/帮助。 我是一个完全新手试图找出AngularJS并用它构建我的第一个应用程序。 对于这个项目,我创建了一个带有文本框的表(连续3个)。数据由工厂填充,每行总数在控制器中计算。这一切都很好(花了我几个小时,但是好吧!)
现在我需要计算表格底部的tbTotal文本框中的总计,我现在尝试超过8小时,但似乎无法找到解决方案。所以我希望有人会帮忙。
我试图让Jsfiddle的事情发生,但没有找到方法。所以项目可以在http://app.novam-it.nl/#/openkassa
找到在http://app.novam-it.nl/app.zip您可以下载项目文件(如果有任何帮助)
这是我的转发码:
<tr ng-repeat="type in types">
<td><input ng-change="calc()" type="text" class="form-control" ng-model="type.basic"></td>
<td><input type="text" class="form-control" disabled ng-model="type.type" currency></td>
<td><input type="text" ng-init="calc()" class="form-control total" disabled ng-model="tbTotal" currency></td>
</tr>
目前这是我的控制者
app.controller('openKassaController', function(currencyFactory, $scope) {
$scope.types = currencyFactory.types;
$scope.calc = function ($scope) {
this.tbTotal = this.type.type * this.type.basic;
};
});
我希望有人可以帮助我!
此致
的Wouter
答案 0 :(得分:2)
我为每种货币类型分配了total
函数,用于计算该类型/行的总计。我还创建了一个$scope.total
函数,它循环遍历每个类型并计算所有行的总数。控制器如下所示:
app.controller('openKassaController', function(currencyFactory, $scope) {
$scope.types = currencyFactory.types;
angular.forEach($scope.types, function(type){
//Add a total function to each row.
type.total = function(){
return type.type * type.basic;
};
});
//Total for all rows.
$scope.total = function(){
var total = 0;
angular.forEach($scope.types, function(type){
total += type.total();
});
return total;
}
});
我还用内置的货币过滤器替换了您的货币指令。
这是plunker,显示一切正常。
答案 1 :(得分:0)
如果您想计算每行的总数:
...
<td><input type="text" ng-init="tbTotal=calc(type)" ... ng-model="tbTotal" currency></td>
...
$scope.calc = function (type) {
return type.type * type.basic;
};