2016-04-03 1 views

Répondre

1

Vous pouvez exploiter Async routes pour cela. En fonction de la configuration de votre itinéraire, vous pouvez charger une route à partir de modules. Dans ce cas, vous devez ajouter le chemin du module pour que les composants soient associés aux routes.

Voici un exemple:

var routes = { 
    path: '/path', 
    name: 'some name', 
    module: './my.component', 
    component: 'MyComponentName' 
} 
routes.forEach((route : any) => { 
    this.routeConfigArray.push(
     new AsyncRoute({ 
      path : route.path, 
      loader :() => System.import(route.module).then(m => m[route.component]), 
      name : route.name 
     }); 
); 
}); 

this._router.config(this.routeConfigArray); 

Une autre approche pourrait être d'ajouter une fonction pour obtenir le nom des fonctions. Sur cette base, vous pouvez vérifier si vous avez un composant potentiel correspondant.

Voici un exemple:

ngOnInit() { 
    this.routes = [ 
    { 
     path: '/test', component: 'OtherComponent', name: 'Test' 
    } 
    ]; 
    this.configureRoutes(this.routes); 
    this.router.config(this.routes); 
} 

configureRoutes(routes) { 
    var potentialComponents = [ OtherComponent ]; 
    routes.forEach((route) => { 
    route.component = potentialComponents.find((component) => { 
     return component.name === route.component; 
    }); 
    }); 
} 

Voir cette plunkr: https://plnkr.co/edit/KKVagp?p=preview.

Je ne l'ai pas essayé moi-même.

Voir cette question pour plus de détails:

+0

Je veux également importer composants dynamiquement – Kamruzzaman

+0

ohh je ne sais pas à ce sujet désolé .. –