mplementando o roteamento dinâmico no Angular2 (datilografado) [duplicado]
Esta pergunta já tem uma resposta aqui:
@Async carrega dados de rotas e constrói instruções de rota para Angular 2 4 respostasclasse @RouteConfig que pode ser usada para decorar um componente (@RouteConfig) com recursos de roteamento possui determinadas definições de rota definidas para esse componente. Agora, o problema é ter essas definições de rota injetadas em tempo de execução (dinamicamente
A razão é que, digamos, eu tenho um aplicativo no qual preciso exibir (UI) e definir (decorar) 'n' número de rotas, cada uma correspondente à conta para a qual o aplicativo é carregado e, consequentemente, aos direitos associados com essa conta específica. Portanto, ter as definições de rota predefinidas no decorador @RouteConfig para um componente não faz nenhum sentid
minha abordagem é fazer uma chamada de serviço sempre que uma nova conta for carregada. E recupere apenas as rotas associadas e injete-as durante o tempo de execução para navegar para outros componentes respectivos correspondentes a cada rota exibida na interface do usuário para essa cont
import { Summary } from './components/summary';
@RouteConfig([
/*
Let's say we need a seller dashboard to be displayed...
*/
//{ path: 'SellerDashboard', component: SellerDashboard }
{ path: '/', component: Summary }
])
class App {
contactInfo: ContactInfoModel;
public App(dataService: DataService) {
this.model = dataService.getContactInfo();
}
}
No snippet de código acima, digamos que desejo carregar o painel do vendedor correspondente a uma conta do vendedor que tenha entrado no meu aplicativo. Agora, não faz sentido exibir o painel do ponto de vendas ou qualquer coisa que não seja relevante para um vendedor (no nosso caso, o painel de inventário do vendedor é relevante para um vendedor
Em essência, injetar apenas as rotas necessárias em vez de configurar todas as rotas no mesmo loca
EDIT 1:
Esta pergunta tem um caso de uso simples ou um cenário que a duplicata marcada nesta postagem (que foi solicitada posteriormente). As respostas mencionadas neste post têm abordagens mais simples e também são muito mais intuitiva