ag-grid
Version:
Advanced Javascript Datagrid. Supports raw Javascript, AngularJS 1.x, AngularJS 2.0 and Web Components
61 lines (49 loc) • 1.99 kB
JavaScript
var module = angular.module("example", ["agGrid"]);
module.controller("exampleCtrl", function($scope, $http) {
var columnDefs = [
{headerName: "Athlete", field: "athlete", width: 150, sort: 'desc'},
{headerName: "Age", field: "age", width: 90},
{headerName: "Country", field: "country", width: 120},
{headerName: "Year", field: "year", width: 90, unSortIcon: true},
{headerName: "Date", field: "date", width: 110, comparator: dateComparator},
{headerName: "Sport", field: "sport", width: 110},
{headerName: "Gold", field: "gold", width: 100},
{headerName: "Silver", field: "silver", width: 100},
{headerName: "Bronze", field: "bronze", width: 100},
{headerName: "Total", field: "total", width: 100}
];
function dateComparator(date1, date2) {
var date1Number = monthToComparableNumber(date1);
var date2Number = monthToComparableNumber(date2);
if (date1Number===null && date2Number===null) {
return 0;
}
if (date1Number===null) {
return -1;
}
if (date2Number===null) {
return 1;
}
return date1Number - date2Number;
}
// eg 29/08/2004 gets converted to 20040829
function monthToComparableNumber(date) {
if (date === undefined || date === null || date.length !== 10) {
return null;
}
var yearNumber = date.substring(6,10);
var monthNumber = date.substring(3,5);
var dayNumber = date.substring(0,2);
var result = (yearNumber*10000) + (monthNumber*100) + dayNumber;
return result;
}
$scope.gridOptions = {
columnDefs: columnDefs,
rowData: null,
enableSorting: true
};
$http.get("../olympicWinners.json")
.then(function(res){
$scope.gridOptions.api.setRowData(res.data);
});
});