我使用ui-grid来显示数据。在网格中有两列:
1)名称
2)工资
让我们说我的网格中有100行。我在网格中使用自定义页脚
gridFooterTemplate:'总小时/ IC费用:{{grid.appScope.ttlHrs}}'
以下是代码:
app.controller('MainCtrl', ['$scope', '$http', '$interval', '$q', function ($scope, $http, $interval, $q) {
$scope.ttlHrs=10;
$scope.gridOptions = {
columnDefs: [
{ name: 'name' },
{ name: 'salary' }
],
gridFooterTemplate: '<div style="background-color:#6C87A0;color:white">total salary:{{grid.appScope.ttlSal}}</div>',
onRegisterApi: function( gridApi ){
$scope.gridApi = gridApi;
// interval of zero just to allow the directive to have initialized
$interval( function() {
gridApi.core.addToGridMenu( gridApi.grid, [{ title: 'Dynamic item', order: 100}]);
}, 0, 1);
gridApi.core.on.columnVisibilityChanged( $scope, function( changedColumn ){
$scope.columnChanged = { name: changedColumn.colDef.name, visible: changedColumn.colDef.visible };
});
}
};
$http.get('some url')
.success(function(data) {
$scope.gridOptions.data = data;
});
}]);
在这里,我显示了10英尺的工资总额。任何人都可以告诉我如何将所有行的薪水和这里的节目相加
在研究上花了一些时间后,我可以这样做:
$.each($scope.gridData, function (index, value) {
$scope.ttlHrs += parseInt($scope.gridData[index].Salary, 10);
});
此解决方案对我有用。
任何人都可以告诉我另一种更好的方法。