2013-07-23 10 views

risposta

35

Secondo oblivion19's comment, ecco un esempio di soluzione (con un po 'più di contesto) impostando la proprietà cellClass di un oggetto columnDefs in gridOptions:

HTML:

<div ng-grid="gridOptions"></div> 

JS:

$scope.someData = [{ "name": "MB", "age": 20 }, { "name": "KY", "age": 22 }]; 
$scope.gridOptions = { 
    data: 'someData', 
    columnDefs: [{ 
     field: 'name', 
     displayName: 'Name', 
     cellClass: 'grid-align' 
    }, { 
     field: 'age', 
     displayName: 'Age' 
    }] 
}; 

CSS:

.grid-align { 
    text-align: center; 
} 

noti che questa soluzione rende solo alcuni colonne centrate (cioè quelli con cellClass specificato). Per rendere tutte le colonne centrate, è sufficiente aggiungere class="grid-align" al div ng-grid.

+1

Molto più facile della templatura solo per allineamento e potente anche –

7

Sì, c'è. Si desidera utilizzare il modello di riga o cella. È definito sul columnDefs nel controller in cui è stata impostata la griglia ng.

columnDefs: [{field: 'name', displayName: 'Name'}, 
       {field:'age', displayName:'Age', cellTemplate: '<div ng-class="{green: row.getProperty(col.field) > 30}"><div style="text-align:center;" class="ngCellText">{{row.getProperty(col.field)}}</div></div>'}] 
    }; 

Ho un aggiornamento Plunker sotto che ha le colonne allineate al centro.

Plunker

+4

Grazie per l'aiuto amico. Ho scoperto che potevo aggiungere cellClass alla colonna e stile quella classe con text-align. Ma il tuo metodo funziona pure. Saluti! – oblivion19

+3

Penso davvero che la risposta di Oblivion sia la soluzione migliore qui. Non è necessario disporre di un modello solo per impostare le proprietà di visualizzazione. –

Problemi correlati