RouteConfig类可以用来为组件 (@RouteConfig) 添加路由功能并定义该组件的特定路由定义。现在,关键是要在运行时(动态地)注入这些路由定义。
原因是,假设我有一个应用程序,在其中必须显示 (UI) 和定义 (decorate)‘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();
}
}
在上面的代码片段中,假设我想加载与登录到我的应用程序的卖家帐户相对应的卖家仪表板。现在,显示销售点仪表板或任何与卖家无关的内容都没有意义(在我们的情况下,卖家的库存仪表板与卖家有关)。简而言之,只注入需要的路由而不是在同一位置配置所有路由。
编辑1:
这个问题有一个比后来标记为重复的帖子更简单的用例或场景。此帖子中提到的答案具有更简单直观的方法。