ventajas tutorial guide example español emberjs ember docs desventajas ember.js ember-router

ember.js - tutorial - ventajas de emberjs



¿Cuál es la diferencia entre una ruta y un recurso en New Router API? (1)

Tenga en cuenta que desde 1.11.0 en adelante, this.route solo se usa en lugar de this.resource . Fuente: http://guides.emberjs.com/v1.11.0/routing/defining-your-routes/ *

Eche un vistazo a esta post para obtener una explicación detallada.

Este es un resumen aproximado de esta publicación (lo he modificado un poco):

Desde el cambio en el recurso y la ruta, mucha gente está confundida sobre el significado de los dos y cómo afectan el nombramiento. Aquí está la diferencia:

  • recurso - una cosa (un modelo)
  • ruta - algo que ver con la cosa

Entonces, esto significa que un enrutador que usa una ruta y un recurso podría verse así:

App.Router.map(function() { this.resource("posts", { path: "/" }, function() { this.route("new", { path: "/new" }); }); this.route("another", { path: "/another" }); });

Esto daría como resultado la creación / uso de las siguientes rutas:

  • PostsRoute, PostsController, MensajesView
  • PostsIndexRoute, PostsIndexController, PostsIndexView
  • PublicacionesNuevoRuta, PublicacionesNuevoControlador, PublicacionesNuevas Vistas
  • AnotherRoute, AnotherController, AnotherView

Como vemos en este ejemplo, el efecto de recursos es la denominación de los Controladores, Rutas y Vistas que se utilizan / crean (La ruta "nueva" se trata como subordinada al recurso "Publicaciones"). Cite de la fuente original (la modifiqué, porque fue irritante como Patrick M señaló correctamente en los comentarios):

Esto significa que cada vez que creas un recurso creará un nuevo espacio de nombre. Ese espacio de nombre se nombra después del recurso y todas las rutas secundarias se insertarán en él.

Actualización: ejemplo más complejo con recursos anidados

Considere el siguiente ejemplo más complejo con múltiples recursos anidados:

App.Router.map(function() { this.resource("posts", { path: "/" }, function() { this.route("new", { path: "/new" }); this.resource("comments", { path: "/comments" }, function() { this.route("new", { path: "/new" }); }); }); this.route("another", { path: "/another" }); });

En este caso, los comments recursos crean un nuevo espacio de nombres. Esto significa que las rutas resultantes en este caso serán las siguientes. Como puede ver, Route, Controller y View para el recurso de comentarios no están prefijados con el nombre de la ruta principal. Eso significa que anidar un recurso dentro de otro recurso restablece el espacio de nombres (= crea un nuevo espacio de nombres).

  • PostsRoute, PostsController, MensajesView
  • PostsIndexRoute, PostsIndexController, PostsIndexView
  • PublicacionesNuevoRuta, PublicacionesNuevoControlador, PublicacionesNuevas Vistas
  • ComentariosRuta, ComentariosControlador, ComentariosVer
  • ComentariosNuevoRuta, ComentariosNuevoControlador, ComentariosNuevavista
  • AnotherRoute, AnotherController, AnotherView

Este comportamiento también se explica en los Documentos de Ember .

Estoy tratando de entender la diferencia entre una Route y un Resource . La forma en que entiendo el Resource ayuda a establecer subrutas de un objeto de Route a otro objeto de Route . Pero no está claro cuando pienso en el mapeo de nombre predeterminado también para las rutas.