在Angular2(Typescript)中实现动态路由
RouteConfig类可用于装饰具有路由功能的组件(@RouteConfig),该类具有为该组件定义的某些路由定义。现在,关键是在运行时(动态)注入这些路由定义 原因是,假设我有一个应用程序,我必须在其中显示(UI)和定义(修饰)“n”个路由,每个路由对应于加载应用程序的帐户,以及与该特定帐户关联的权限。因此,在decorator@RouteConfig中为组件预定义路由定义没有任何意义 我的方法是在每次加载新帐户时进行服务调用。和仅检索关联的路由并在运行时注入它们,以便导航到与该帐户的UI中显示的每个路由对应的其他相应组件在Angular2(Typescript)中实现动态路由,typescript,angular,angularjs-routing,angular2-routing,angular2-template,Typescript,Angular,Angularjs Routing,Angular2 Routing,Angular2 Template,RouteConfig类可用于装饰具有路由功能的组件(@RouteConfig),该类具有为该组件定义的某些路由定义。现在,关键是在运行时(动态)注入这些路由定义 原因是,假设我有一个应用程序,我必须在其中显示(UI)和定义(修饰)“n”个路由,每个路由对应于加载应用程序的帐户,以及与该特定帐户关联的权限。因此,在decorator@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();
}
}
在上面的代码片段中,假设我希望加载与我的应用程序中的卖方帐户对应的卖方仪表板。现在,它赢了;显示销售点仪表板或与卖家无关的任何东西都没有任何意义(在我们的案例中,卖家的库存仪表板与卖家相关)
在gist中,只注入所需的路由,而不是在同一位置配置所有路由
编辑1:
这个问题有一个简单的用例或场景,而不是在这篇文章上标记的副本(这是后来提出的)。这篇文章中提到的答案有更简单的方法,也更直观。查看这篇文章:
基本上,作者创建了一个类DynamicRouteConfigurator
,该类使用Reflect API向@RouteConfig
装饰器动态添加路由
Github链接:
这是可以做到的,但不是简单的解决办法。看一看,希望有帮助…@Sasxa非常感谢你的帮助。我试了一下,做了一些修改以满足我的需要。好文章!对我来说很有魅力,这符合我的目的。谢谢路线登记现在似乎已被弃用。有没有其他方法可以做到这一点?看看这个问题:它可能会有所帮助