如何在Angular2中使用我的路由参数获得外部JSON数据文件?

时间:2015-12-24 01:19:51

标签: angular angular2-routing

我是Angular的新手,显然也是Angular 2。我试图将路由参数存储在外部文件中(例如,JSON格式的数据文件)。

我最接近它的工作方法是创建一个.js文件,其变量设置为我的路由参数,并包含它。

var routeParams = [
        { path: '/',             as: 'Home',          component: HomeComponent },
        { path: '/petlist',      as: 'Petlist',       component: PetlistComponent }
    ];

然后将它用于RouteConfig:

@RouteConfig(routeParams)

但问题是,它期望组件成为类,并且它们不会存在于.js文件中。

我也尝试过一个返回JSON路由参数的函数,但我对组件类有同样的问题。

我正在使用的系统已经有一个UI供用户创建网页,设置菜单等。我试图让系统输出Bootstrap / Angular2模板。因为用户可以创建他们自己的网页,所以我不确定如何设置路由,因为他们可以改变。我认为使用JSON数据文件将是一个很好的解决方案,但我的应用程序显然需要使用该文件中的路由数据,而不是在应用程序中进行硬编码。

我使用的是Angular 2.0.0-beta.0和TypeScript。

2 个答案:

答案 0 :(得分:0)

如果它在angular2中可能会很好,遗憾的是,你不会在routing docs中找到任何这样的例子,你必须为每条路线手动定义组件类。但是,您可以循环共享同一组件的多个路由。 (例如:书签)

答案 1 :(得分:0)

您可以使用resetConfig()进行此操作,从服务器获取数据,然后使用router.config在另一个阵列中读取实际的路由器数据,然后推送新的路由。

addRouteConfig(): void {
    const allRoute = this.router.config;
    allRoute.push(
        {
            path: 'someroute',
            component: someRouterComponent
        }
    );
    this.router.resetConfig(allRoute);
}