Esta API privada es una que utilizo con frecuencia en mis aplicaciones para obtener programáticamente el modelo de la ruta actual. Es principalmente una conveniencia para this.modelFor(this.routeName)
¹. Esto es especialmente útil para escribir código de ruta reutilizable que necesita llegar al modelo de ruta actual.
¹ Aunque routeName
es privado, consulte # 11759
: +1: super útil - cuando veo en una ruta this.modelFor('a.route.name')
siempre tengo que verificar para ver si es el nombre de la ruta actual o no. Esto eliminaría esa fuente de confusión, especialmente si parece que la mejor práctica es hacer que la ruta maneje las acciones manipulando su propio modelo y (idealmente) no el modelo de alguna otra ruta.
Discutimos esto en la reunión del equipo central esta tarde y decidimos que nos gustaría mantenerlo en privado. Como mencionaste, this.modelFor(this.routeName)
(acabo de intervenir en # 11759 que deberíamos hacer público this.routeName
) es una buena manera de hacer esto con API públicas. También puede usar this.get('controller.model')
. Ambas sugerencias deben eliminar la ambigüedad con this.modelFor('a.b.c')
que @davidgoli mencionó.
Gracias por abrir el tema para discusión, voy a cerrar ahora que lo discutimos y decidimos mantener la privacidad.
Suena bien, luego crearé un alias en ApplicationRoute
que es solo currentModel: function () { return this.modelFor(this.routeName); }
porque es inmensamente útil y es una pena que se pase por alto. ¡Pero seguiremos adelante!
Comentario más útil
Suena bien, luego crearé un alias en
ApplicationRoute
que es solocurrentModel: function () { return this.modelFor(this.routeName); }
porque es inmensamente útil y es una pena que se pase por alto. ¡Pero seguiremos adelante!