动态创建组件 关于动态创建组件的另一篇文章 I am building a cms where a user can pick what pages to use. So if the user wants a contact page, they select it and fill out some content for it and their site would have a contact route for example. Based on this, is it possible to dynamically add routes in angular based on if a user wants or does not want a particular page? 解决方案 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 ComponentsAngular Docs on Dynamic Component LoaderDynamically Creating ComponentsAnother article on dynamically creating components 这篇关于是否可以在角度2中动态建立添加路由?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!
08-26 01:01
查看更多