我正在构建一个用户可以选择要使用的页面的cms.因此,如果用户想要一个联系页面,他们会选择它并为其填写一些内容,并且他们的网站会有一个contact路由.基于此,是否可以根据用户是否想要特定页面动态添加角度路线?
可用于使用路由功能装饰组件(@RouteConfig)的RouteConfig类具有为该组件定义的某些路由定义.现在,问题是在运行时(动态)注入这些路由定义.
原因是,假设我有一个应用程序,其中我必须显示(UI)和定义(修饰)'n'个路由,每个路由对应于加载应用程序的帐户,因此与之关联的权限特别帐户.因此,在装饰器@RouteConfig中为组件预定义路径定义没有任何意义.
我的方法是每次加载新帐户时拨打服务电话.并且仅检索关联的路线并在运行时注入它们以便导航到与该帐户的UI中显示的每个路线相对应的其他相应组件.
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();
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码段中,假设我希望将与卖方帐户对应的卖方信息中心加载到我的应用程序中.现在,它赢得了任何意义:显示销售点仪表板或与卖方无关的任何内容(在我们的案例中,卖方的库存仪表板与卖方相关).
在要点中,只注入那些需要的路由,而不是在同一个地方配置所有路由.
编辑1:
这个问题有一个简单的用例或场景,而不是这篇文章上标记的重复(事后有人问过).这篇文章中提到的答案有更简单的方法,也更直观.
typescript angularjs-routing angular2-template angular2-routing angular