如何进行算术计算并将结果保存在angularJs中的ng重复列表中的下一行
How can I do arithmetic calculation and preserve result for next row in ng-repeat list in angularJs?
我有一个表,我想在每行中进行加法/减法运算,并为下一行保留结果。
<tr ng-repeat="statement in statements.result.data">
<td>{{statement|getClosingBalance:statements.opening_balance|number:2}}</td>
</tr>
过滤器,
invoiceApp.filter('getClosingBalance', function () {
return function (statement, balance) {
if (statement.type == 1) {
return parseFloat(balance) + parseFloat(statement.amount);
} else if (statement.type == 2) {
return parseFloat(balance) - parseFloat(statement.amount);
}
}
});
当我编写代码时,它运行良好,但我想在每次手术后保持平衡。
如何实现相同的功能?
为什么不计算服务中的数据,并保持视图的整洁。计算服务中的数据,然后直接呈现数据,这使您的视图干净,服务易于测试。
app.factory('openingBalanceService', function() {
function calculateOpeningBalance(data){
var result = angular.copy(data);
/*do calculation on result*/
return result
}
return{
calculateOpeningBalance: calculateOpeningBalance
};
});
当数据从db或api、接收时,我在控制器本身中进行所有计算
$scope.statements.balance = $scope.statements.opening_balance;
angular.forEach($scope.statements.result.data, function (obj) {
if (obj.type == 1) {
obj.closing_balance = parseFloat($scope.statements.balance) + parseFloat(obj.amount)
} else if (obj.type == 2) {
obj.closing_balance = parseFloat($scope.statements.balance) - parseFloat(obj.amount)
}
$scope.statements.balance = obj.closing_balance;
});
Html,
<td class="text-right" data-ng-bind="(company.currency)+' '+(statement.closing_balance|number:2)"></td>
因此,在html中或循环内部不会有任何类型的计算:)
相关文章:
- 我已经创建了一个动态的下拉选择列表,它指向一行;如何使该行成为变量
- 如何使用Meteor将列表中每一行的列值存储到集合中
- 如何在从服务器获取数据的动态表的每一行中添加下拉列表
- 如何将内容与列表放在同一行上
- 挖空.js按钮读取对象列表中的一行
- 如何使用jQuery和Ajax将文本文件中的每一行加载到HTML列表中
- Bootstrap3 在同一行上有两个下拉列表
- AngularJs ng显示当列表中的某一项在一行中为true时
- 为表中的每一行创建mysql删除链接,使用ajax删除并更新表列表
- 嵌套列表-在单独的一行上显示每个ul级别
- 如何使用bootstrap'突出显示数据列表中的一行;s表的悬停类
- 如何使用ng repeat以缩略图格式创建一行中有n个项目的m个项目的列表
- Jquery Mobile检测在列表视图中单击了哪一行
- 如何进行算术计算并将结果保存在angularJs中的ng重复列表中的下一行
- 如何在HTML中以列表样式(方形,圆形等)在一行中打印列表
- 从列表中删除一行后更新UI
- 如何隐藏一行表(或列表项)并在不重新加载页面的情况下更新数据存储
- 将以换行符分隔的数字列表转换成一行
- 编辑记录列表中的一行
- 如何将两个下拉列表中的一行添加到表中,并在选择时删除