Ember.js: Considere hacer público `currentModel` en` Ember.Route`

Creado en 15 jul. 2015  ·  4Comentarios  ·  Fuente: emberjs/ember.js

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

Comentario más útil

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!

Todos 4 comentarios

: +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!

¿Fue útil esta página
0 / 5 - 0 calificaciones