如何在 Angular2 中使用我的路由参数获得外部 JSON 数据文件?
How can I have an external JSON data file with my route parameters in Angular2?
我是 Angular 的新手,显然 Angular 2 也是。我正在尝试将我的路由参数存储在外部文件中(例如,JSON 格式的数据文件)。
我最接近让它工作的方法是创建一个 .js 文件,并将变量设置为我的路由参数,并将其包含在内。
var routeParams = [
{ path: '/', as: 'Home', component: HomeComponent },
{ path: '/petlist', as: 'Petlist', component: PetlistComponent }
];
然后将其用于 RouteConfig:
@RouteConfig(routeParams)
但问题是它期望组件是 类,而它们不存在于 .js 文件中。
我也尝试过 returns JSON 路由参数的函数,但组件 类.
也有同样的问题
我正在使用的系统已经有一个 UI 供用户创建网页、设置菜单等。我正在尝试让该系统输出 Bootstrap/Angular2 模板。因为用户可以创建自己的网页,所以我不确定如何设置路由,因为它们可以更改。我认为使用 JSON 数据文件是一个很好的解决方案,但我的应用程序显然需要使用该文件中的路由数据,而不是在应用程序中进行硬编码。
我正在使用 Angular 2.0.0-beta.0 和 TypeScript。
如果它可以在 angular2 中实现,那就太好了,不幸的是,您在 routing docs 中找不到任何类似的示例,您必须为每个路由手动定义组件 class。但是,您可以遍历共享同一组件的多条路线。 (例如:书签)
您可以在另一个数组中使用 resetConfig() , getting the data from server then reading actual router data with router.config 并推送新路由。
addRouteConfig(): void {
const allRoute = this.router.config;
allRoute.push(
{
path: 'someroute',
component: someRouterComponent
}
);
this.router.resetConfig(allRoute);
}
我是 Angular 的新手,显然 Angular 2 也是。我正在尝试将我的路由参数存储在外部文件中(例如,JSON 格式的数据文件)。
我最接近让它工作的方法是创建一个 .js 文件,并将变量设置为我的路由参数,并将其包含在内。
var routeParams = [
{ path: '/', as: 'Home', component: HomeComponent },
{ path: '/petlist', as: 'Petlist', component: PetlistComponent }
];
然后将其用于 RouteConfig:
@RouteConfig(routeParams)
但问题是它期望组件是 类,而它们不存在于 .js 文件中。
我也尝试过 returns JSON 路由参数的函数,但组件 类.
也有同样的问题我正在使用的系统已经有一个 UI 供用户创建网页、设置菜单等。我正在尝试让该系统输出 Bootstrap/Angular2 模板。因为用户可以创建自己的网页,所以我不确定如何设置路由,因为它们可以更改。我认为使用 JSON 数据文件是一个很好的解决方案,但我的应用程序显然需要使用该文件中的路由数据,而不是在应用程序中进行硬编码。
我正在使用 Angular 2.0.0-beta.0 和 TypeScript。
如果它可以在 angular2 中实现,那就太好了,不幸的是,您在 routing docs 中找不到任何类似的示例,您必须为每个路由手动定义组件 class。但是,您可以遍历共享同一组件的多条路线。 (例如:书签)
您可以在另一个数组中使用 resetConfig() , getting the data from server then reading actual router data with router.config 并推送新路由。
addRouteConfig(): void {
const allRoute = this.router.config;
allRoute.push(
{
path: 'someroute',
component: someRouterComponent
}
);
this.router.resetConfig(allRoute);
}