ember.js - transitiontoroute - ember route activate



Qual é a diferença entre uma rota e um recurso na API New Router? (1)

Por favor, note que a partir de 1.11.0, this.route é usado apenas em vez this.resource . Fonte: http://guides.emberjs.com/v1.11.0/routing/defining-your-routes/ *

Dê uma olhada neste post para uma explicação detalhada.

Este é um resumo aproximado deste post (eu modifiquei um pouco):

Desde a mudança para recurso e rota muitas pessoas estão confusas sobre o significado dos dois e como eles afetam a nomeação. Aqui está a diferença:

  • recurso - uma coisa (um modelo)
  • rota - algo a ver com a coisa

Então, isso significa que um roteador usando uma rota e um recurso pode ter esta aparência:

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

Isso resultaria na criação / utilização das seguintes rotas:

  • PostsRoute, PostsController, PostsView
  • PostsIndexRoute, PostsIndexController, PostsIndexView
  • PostsNewRoute, PostsNovoController, PostagensNewView
  • AnotherRoute, AnotherController, AnotherView

Como vemos neste exemplo, efeito de recurso a nomenclatura dos Controladores, Rotas e Visualizações sendo usados ​​/ criados (A "nova" rota é tratada como subordinada ao recurso "posts"). Cite da fonte original (eu modifiquei, porque era irritante como Patrick M corretamente apontou nos comentários):

Isso significa que sempre que você criar um recurso, ele criará um novo namespace. Esse namespace é nomeado após o recurso e todas as rotas filhas serão inseridas nele.

Atualização: exemplo mais complexo com recursos aninhados

Considere o seguinte exemplo mais complexo com vários recursos aninhados:

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" });
});

Nesse caso, os comments recursos criam um novo namespace. Isso significa que as rotas resultantes neste caso serão as seguintes. Como você pode ver o Route, o Controller e o View para o recurso de comentários não são prefixados com o nome da rota pai. Isso significa que aninhar um recurso dentro de outro recurso redefine o namespace (= cria um novo namespace).

  • PostsRoute, PostsController, PostsView
  • PostsIndexRoute, PostsIndexController, PostsIndexView
  • PostsNewRoute, PostsNovoController, PostagensNewView
  • ComentáriosRota, ComentáriosControlador, ComentáriosVisualizar
  • ComentáriosNovoRoute, ComentáriosNovoController, ComentáriosVisualizar
  • AnotherRoute, AnotherController, AnotherView

Esse comportamento também é explicado no Ember Docs .

Eu estou tentando entender a diferença entre uma Route e um Resource . A maneira que eu entendo Resource ajuda a definir sub caminhos de um objeto Route para outro objeto de Route . Mas não está claro quando penso no mapeamento de nomes padrão acontecendo também para os caminhos.