Tri sur les données sous-jacentes dans ng-grille
Je souhaite afficher la valeur mise en forme dans un ng-cellule de la grille, mais en quelque sorte sur une valeur numérique ne s'affiche pas.
var myData1 = [{
name: "Moroni",
age: 50,
ageWord: "Fifty"
}
À partir de l'exemple ci-dessus, je voudrais afficher le ageWord colonne, mais souhaitez faire le tri sur la colonne âge.
La docs pour le tri d'un ng-grille directive indiquent que je peux fournir une fonction personnalisée pour trier les données sous-jacentes:
sortFn
Définit la fonction de tri de la colonne. Utile lorsque vous avez des données qui est formaté d'une manière inhabituelle, ou si vous voulez de tri sur un sous-jacent type de données. Vérifiez le MDN sorte docs pour des exemples
la fonction de tri personnalisé reçoit l'affichage des valeurs de la colonne de tri est cliqué, mais je tiens à trier sur l'âge. Si j'avais la ligne disponible dans la fonction de tri j'ai pu trier sur le frère de la cellule, quelque chose comme ceci:
sortFn: function(a, b) {
var ageA = a.getProperty('age');
var ageB = b.getProperty('age');
return ageA-ageB;
}
Des suggestions comment je peux trier par " âge "lorsque le "ageWord' colonne est triée? Exemple sur plnkr.
- vous pouvez utiliser
field:'age', cellFilter: 'toWord'
et écrire un filtre toWord(num)? Similaire à ceci: stackoverflow.com/questions/14766951/...
Vous devez vous connecter pour publier un commentaire.
Vous devez définir votre colonne comme un objet et de définir votre cellTemplate. Ensuite, utilisez la propriété age dans votre sortFn (http://plnkr.co/edit/qmBsneZ3HmFRKSkjbBWU?p=preview):
Selon les docs, cellTemplate par défaut:
Donc tout ce que vous devez faire est d'utiliser {{COL_FIELD.age}} et tous les filtres que vous pouvez (ou pas) ont.
Vous pouvez utiliser
sortInfo
dans votregridOptions
, comme ceci: