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 respostas

classe @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

questionAnswers(1)

yourAnswerToTheQuestion