0

我正在使用AngularJs ui網格進行分組。該表顯示正常,但我面臨的問題是,表中的月份序列變得混亂。請找到我的Plunker。在表格中,月份出現在混亂順序11-14,05-15,04-15,... 02-15中。但我需要在11-14,12-14,01-15,02-15,03-15,04-15,05-15的順序。任何人都可以幫我解決它嗎?Angularjs ui網格與分組列序列越來越混亂

我使用獲得colDefs如下:

$scope.getColumnDefsForUiGrid = function(columns) { 
    var colDef = []; 
    colDef.push({ 
     name: 'mode', 
     grouping: { 
      groupPriority: 0 
     }, 
     displayName: 'Type', 
     enableCellEdit: false, 
     width: '5%' 
    }); 
    colDef.push({ 
     name: 'service', 
     displayName: 'Catg', 
     enableCellEdit: false, 
     width: '5%' 
    }); 
    angular.forEach(columns, function(value, key) { 
     colDef.push({ 
      name: key, 
      displayName: value, 
      enableCellEdit: true, 
      aggregationType: uiGridConstants.aggregationTypes.sum, 
      width: '5%' 
     }) 
    }); 
    return colDef; 
}; 
+0

一種解決方法其實你的UI格列是完全相同的訂單比你\t $ scope.columns。如果您想更改訂單,則可以重新排列此對象。 – Okazari

+0

如何在getColumnDefsForUiGrid中執行此操作? –

+0

我只想按正確的順序排列幾個月。 –

回答

1

這裏是你的問題 you can see it working on this plunker

$scope.getColumnDefsForUiGrid = function(columns){ 
     var colDef = [];       
     colDef.push({name: 'mode', grouping: { groupPriority: 0 }, displayName: 'Type', enableCellEdit: false, width: '5%'}); 
     colDef.push({name: 'service', displayName: 'Catg', enableCellEdit: false, width: '5%'}); 

     //I split the monthColumns into an other array      
     var monthCol = []; 
     angular.forEach(columns, function(value, key) { 
       monthCol.push({name: key, displayName: value, enableCellEdit: true, aggregationType : uiGridConstants.aggregationTypes.sum, width: '5%' }) 
     }); 

     //I sort this array using a custom function 
     monthCol.sort(function(a,b){ 
       a = a.displayName.split("-"); 
       b = b.displayName.split("-"); 
       if(a[1] < b[1]){ 
        return -1; 
       }else if (a[1] > b[1]){ 
        return 1; 
       }else { 
        if(a[0] < b[0]){ 
        return -1; 
        }else{ 
        return 1; 
        } 
       } 
     }); 

    //I concat the two array 
    return colDef.concat(monthCol); 
}; 
+0

@MadasuK這是否解決了您的問題? – Okazari

+0

是的,接受了答案。謝謝 –