EmberJS - Definindo Rotas

O roteador combina o URL atual com as rotas responsáveis ​​por exibir o modelo, carregar dados e configurar o estado do aplicativo. O método router map () é usado para definir os mapeamentos de URL que passam uma função que leva parâmetro como um objeto para criar as rotas. O auxiliar {{link-to}} navega pelo roteador.

Para definir uma rota, use o seguinte comando na pasta do seu projeto -

ember generate route route-name

Ele cria o arquivo de rota app / routes / name_of_the_route.js, um modelo para a rota em app / templates / name_of_the_route.hbs, e um arquivo de teste de unidade em tests/unit/routes/route_name_of_the_test.js.

Você pode definir os mapeamentos de URL usando o método map () do roteador. Isso pode ser invocado com este valor para criar um objeto para definir a rota.

Router.map(function() {
   this.route('link-page', { path: '/path-to-link-page' });
   .
   .
   this.route('link-page', { path: '/path-to-link-page' });
});

O código acima mostra como vincular as diferentes páginas usando o mapa do roteador. Leva o nome e o caminho da página de link como argumento.

A tabela abaixo mostra diferentes tipos de rotas -

S.No. Rotas e descrição
1 Rotas aninhadas

Ele especifica as rotas aninhadas definindo um modelo dentro de outro modelo.

2 Segmentos dinâmicos

Ele começa com um: no método route () seguido por um identificador.

3 Rotas curinga / globbing

As rotas curinga são usadas para combinar os vários segmentos de URL.

Exemplo

O exemplo a seguir mostra como definir uma rota para a exibição de dados. Abra o arquivo .hbs criado em app / templates / . Aqui, criamos o arquivo como routedemo.hbs com o seguinte código -

<h2>My Books</h2>
<ul>
   <li>Java</li>
   <li>jQuery</li>
   <li>JavaScript</li>
</ul>

Abra o arquivo router.js para definir mapeamentos de URL -

import Ember from 'ember';                    
//Access to Ember.js library as variable Ember
import config from './config/environment';
//It provides access to app's configuration data as variable config 

//The const declares read only variable
const Router = Ember.Router.extend ({
   location: config.locationType,
   rootURL: config.rootURL
});

//Defines URL mappings that takes parameter as an object to create the routes
Router.map(function() {
   this.route('routedemo');
});

export default Router;

Crie o arquivo application.hbs e adicione o seguinte código -

//link-to is a handlebar helper used for creating links
{{#link-to 'routedemo'}}BookDetails{{/link-to}}
{{outlet}} //It is a general helper, where content from other pages will 
appear inside this section

Resultado

Execute o servidor ember e você receberá a seguinte saída -

Quando você clica no link da saída, um resultado como na imagem a seguir será gerado -