Is it possible to build add routes dynamically in angular 2? [duplicate]

Yes. There are multiple ways to accomplish what you are wanting. You can use router.resetConfig to reset the router’s config with a new config:

this.router.resetConfig([
 { path: 'somePath', component: SomeComponent},
 ...
]);

You can also push routes onto the config:

this.router.config.push({ path: 'somePath', component: SomeComponent });

Another way I’ve done this is I had made a way users could build pages using something like TinyMCE and specify the url path they wanted the page to have. In Angular, I specified a wild-card route in the router with { path: '**', component: ComponentBuilder }, where the ComponentBuilder component would fetch the template from the database that corresponds to the path someone requested and then dynamically generate the component with the template. If a template didn’t exist in the database, then a normal Page cannot be found template was rendered.

Both ways work. It comes down to how you want your application to function and how you will build the pages users create.

There is a lot more documentation and examples on how to create dynamic components since the solution I came up with in version 2 rc4. I have not used any of these, but it looks helpful:

NPM package for Dynamic Components

Angular Docs on Dynamic Component Loader

Dynamically Creating Components

Another article on dynamically creating components

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)