2017-09-21 4 views
0

Mes données Ember sont basées sur une base de données, mais Ember conserve sa propre copie. Ainsi, alors que les appels CRUD retournent toujours les données triées, elles sortent de leur tri dans Ember lorsque des données sont ajoutées. La solution évidente est que Ember reste synchronisé avec la base de données, mais cela semble aller à l'encontre de la prémisse d'Ember, et il n'y a pas d'appel "reloadAll" évident.Conserver les données du modèle triées?

Mais il n'y a pas non plus de "sortBy" qui s'applique à partir d'un modèle. J'ai essayé d'ajouter une ...

phrasesSorted: Ember.computed.sort('phrases', 'phrase') 

à mon modèle de phrases, mais ne pouvait pas comprendre comment l'obtenir référencé à partir du composant (par exemple {{#each model.phrasesSorted comme | phrase |}} doesn ne le faites pas.)

Quel est le moyen idéal pour présenter facilement les données triées? Est-ce un cas où j'ai besoin d'écrire plus de code - par exemple. routes et contrôleurs personnalisés - pour faire quelque chose qui semble simple, ou juste me manque le simple?

Répondre

0

Vous utilisez computed.sort dans le chemin incorrect. S'il vous plaît utiliser:

phrasesSorted: Ember.computed.sort('phrases', 'phrasesSorting'), 
phrasesSorting: ['phrase'] 

référence ensuite via model.phrasesSorted serait tout simplement travailler - peu importe si le contrôleur intérieur, modèle, route, composant ou service.

+0

Merci pour la réponse. Apparemment, je l'utilisais incorrectement, mais je l'utilise aussi incorrectement, car je n'obtiens aucun résultat. J'ai essayé cela dans un composant et dans le modèle; ne pas récupérer les données. Donc à l'essentiel ... pourquoi ai-je besoin des deux lignes? Que fait la deuxième ligne? Et quel type de module - modèle, composant, etc. - devrait-il être? Merci. – TCat

+0

Qu'est-ce que c'est exactement des phrases? Si phrases est un tableau simple, changez-le pour qu'il soit un tableau d'objets à la place, comme '[{text: 'b'}, {text: 'c'}, {text: 'a'}]'. Si c'est une collection de dossiers d'enfants, alors ça va. Votre tri calculé devrait simplement inclure l'attribut du modèle de phrase, comme 'phrasesSorting: ['text']' – handlebears

+0

C'est un modèle. Quatre éléments, dont "Phrase", qui est la sorte-cible. – TCat