gpt4 book ai didi

angular - 在 Angular2 中通过 JSON 加载路由

转载 作者:太空狗 更新时间:2023-10-29 19:30:18 28 4
gpt4 key购买 nike

我正在尝试从 JSON 文件加载路由,因为我不想对它们进行硬编码并延迟加载路由。像这样:

import { RouterModule } from '@angular/router';
const routes = [
{ path: '', loadChildren: 'app/home/home.module' },
{ path: ':item/shoes', loadChildren: 'app/shoes/shoes.module' },
{ path: ':item/watch', loadChildren: 'app/watch/watch.module' }
];
export default RouterModule.forRoot(routes);
我想从 JSON 文件加载以下路由。

{ path: '', loadChildren: 'app/home/home.module' },
{ path: ':item/shoes', loadChildren: 'app/shoes/shoes.module' },
{ path: ':item/watch', loadChildren: 'app/watch/watch.module' }

我正在使用注入(inject)到组件中的服务读取 JSON 文件。我如何在路由器中注入(inject)服务以获取值?或者有没有其他更好的方法可以从 JSON 加载路由?

最佳答案

这对我有用:

应用路由.module.ts

import { NgModule } from '@angular/core';
import { RouterModule, Routes, Router } from '@angular/router';

import * as AppRoutingJson from "./app-routing.json";

import { HomeComponent } from "./main/content/pages/joomla/home/home.component";
import { PageNotFoundComponent } from "./main/content/pages/joomla/page-not-found/page-not-found.component";

const routes: Routes = [
{
path: '',
component : HomeComponent
}
];

@NgModule({
imports: [ RouterModule.forRoot(routes) ],
exports: [ RouterModule ],
entryComponents: [
PageNotFoundComponent
]
})

export class AppRoutingModule {

constructor( private router: Router ){

this.prepareRoutes( AppRoutingJson );

}

prepareRoutes( routesJson: any ) {

let routesArr = <Routes>[];

routesArr = routesJson;

routesArr.forEach( route => {

routes.push( route );

});

routes.push(
{
"path" : 'page-not-found',
"component" : PageNotFoundComponent,
},
{
"path" : '**',
"redirectTo" : 'page-not-found'
}
);

this.router.resetConfig( routes );

}

}

关于angular - 在 Angular2 中通过 JSON 加载路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40405361/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com