Ember.js: Envisagez de rendre public `currentModel` dans `Ember.Route`

Créé le 15 juil. 2015  ·  4Commentaires  ·  Source: emberjs/ember.js

Cette API privée est une API que j'utilise fréquemment dans mes applications pour obtenir par programme le modèle de la route actuelle. C'est surtout une commodité pour this.modelFor(this.routeName) ¹. Ceci est particulièrement utile pour écrire un code de route réutilisable qui doit accéder au modèle de la route actuelle.

¹ Bien que routeName soit privé, voir #11759

Commentaire le plus utile

Ça a l'air bien, je vais ensuite créer un alias dans ApplicationRoute qui est juste currentModel: function () { return this.modelFor(this.routeName); } parce que c'est immensément utile et dommage qu'il soit négligé. Mais on va continuer !

Tous les 4 commentaires

:+1: super utile - quand je vois dans une route this.modelFor('a.route.name') je dois toujours vérifier si c'est le nom de la route actuelle ou non. Cela éliminerait cette source de confusion, en particulier il semble que la meilleure pratique consiste à faire en sorte que la route gère les actions en manipulant son propre modèle, et (idéalement) pas le modèle d'un autre route.

Nous en avons discuté lors de la réunion de l'équipe de base cet après-midi et avons décidé que nous aimerions garder cela privé. Comme vous l'avez mentionné, this.modelFor(this.routeName) (je viens de dire sur #11759 que nous devrions rendre this.routeName public) est un bon moyen de le faire avec les API publiques. Vous pouvez également utiliser this.get('controller.model') . Ces deux suggestions devraient lever l'ambiguïté avec les this.modelFor('a.b.c') mentionnés par @davidgoli .

Merci d'avoir ouvert le sujet à la discussion, je vais fermer maintenant que nous avons discuté et décidé de garder privé.

Ça a l'air bien, je vais ensuite créer un alias dans ApplicationRoute qui est juste currentModel: function () { return this.modelFor(this.routeName); } parce que c'est immensément utile et dommage qu'il soit négligé. Mais on va continuer !

Cette page vous a été utile?
0 / 5 - 0 notes