Magasin avec un tri personnalisé dans le Sencha Touch
J'ai un magasin + modèle qui est connecté à une 3ème partie plugin (Ext.ux.TouchGridPanel). Le plugin appelle le magasin de la méthode sort() correctement avec la cartographie. Tout fonctionne bien, et le magasin résout de lui-même. Cependant, je préfère ajouter un client de tri à la boutique. J'ai essayé d'ajouter un sortType champ dans mon modèle:
Ext.regModel("Transactions", {
fields: [
{
name: 'unit',
type: 'string',
sortType: function(value) {
console.log('PRINT GDAMNIT');
return 0;
}
},
...
]
});
Ceci, cependant, ne fonctionne pas, et le sortType n'est pas appelé.
TLDR: Comment faire un tri personnalisé de travail pour les magasins?
OriginalL'auteur Nicodemuz | 2011-04-14
Vous devez vous connecter pour publier un commentaire.
Votre magasin aura besoin d'un trieur ajoutée qui permet de trier sur le champ, avant d'appeler la sortType fonction.
Type de tri convertit la valeur d'un champ dans un autre de valeur pour s'assurer du bon de commande. Si vous n'êtes pas de tri sur le champ qu'il n'y a pas de raison d'appeler cette fonction. Vous pouvez ajouter la sortDir pour le terrain, ce qui permettrait de trier le domaine dans l'ordre croissant/décroissant en fonction du type du champ seul.
OriginalL'auteur mistagrooves
Une solution pourrait être d' (je sais que cela paraît inefficace, mais garder avec moi) ajouter un champ supplémentaire à votre modèle d'instances (appelons cela sortField) et l'utiliser pour votre fonction de tri. Vous pouvez ensuite parcourir vos instances de modèle dans votre magasin d'application personnalisé de votre algorithme de tri et d'attribuer une valeur de tri de 0,1,2,3,4,5, etc.. pour sortField. Ensuite, dans votre magasin, vous pouvez ajouter
'sorters: 'sortField'
... Espérons que cela aide un peu, je vais à travers quelque chose de semblable à l'instant actuel.OriginalL'auteur Stephen Sweriduk
La personnalisé SortType dans Sencha Touch 2 fonctionne en conséquence, comme par http://docs.sencha.com/touch/2-0/#!/api/Ext.les données.SortTypes:
OriginalL'auteur Martin Tajur
Ce que vous êtes tenté de faire, peut être difficile. L'appel de
store.sort()
supprime tous les trieurs par défaut (selon Sencha Touch documentation de l'API). Pour conserver les trieurs, vous devrez ajouter le trieur pour leMixedCollection
store.sorters
.D'autre part, à l'appel de la méthode de tri avec une fonction de tri personnalisé, vous auriez besoin pour passer un spécifique
sorterFn
au lieu deproperty
à laSorter
(de nouveau, voir le API pour plus de détails) - mais cela pourrait s'avérer délicate, car le tri appel est lancé à partir du plugin.Ne sais pas si cela aide à résoudre votre problème, mais peut-être que cela vous aide à regarder au bon sens.
OriginalL'auteur Tommi