2013-07-23 7 views

Répondre

35

Comme par oblivion19's comment, voici une solution d'exemple (avec un peu plus de contexte) en définissant la propriété cellClass d'un objet columnDefs dans 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; 
} 

Notez que cette solution ne fait que quelques colonnes centrées (à savoir ceux avec cellClass spécifiés). Pour que toutes les colonnes soient centrées, ajoutez simplement class="grid-align" au div ng-grid à la place.

+1

Beaucoup plus facile que le template juste pour l'alignement et puissant aussi –

7

Oui, il y a. Vous voulez utiliser le modèle de ligne ou de cellule. Il est défini sur columnDefs dans le contrôleur où vous avez configuré la ng-grid.

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>'}] 
    }; 

J'ai une mise à jour Plunker ci-dessous qui a les colonnes alignées sur le centre.

Plunker

+4

Merci pour votre aide mec. J'ai trouvé que je pouvais ajouter cellClass à la colonne, et styler cette classe avec text-align. Mais votre méthode fonctionne aussi bien. À votre santé! – oblivion19

+3

Je pense vraiment que la réponse d'oubli est la meilleure solution ici. Pas besoin d'avoir un template juste pour définir les propriétés d'affichage. –