是否有任何内置功能或流行的库可以避免在视图中使用硬编码网址?也许有一个库可以反转Routes对象并为它们生成类型安全的构建器?
我需要这样的功能有两个原因:
答案 0 :(得分:0)
如果你想要这样的东西,你自己很容易制作。您可以导出将路由作为常量并将其导入到您想要使用的任何位置。
第1步
创建一个名为routes.ts
的文件,您可以在其中导出路线:
export const HOME = 'home';
export const ABOUT = 'about';
export const CONTACT = 'contact';
第2步
将routes.ts
文件导入您想要使用路线的位置并参考您的路线:
import * as routes from './routes';
示例1 app.routing.ts:
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import * as routes from './routes';
const routes: Routes = [
{
path: routes.HOME,
component: HomeComponent
},
{
path: routes.ABOUT,
component: AboutComponent
},
{
path: routes.CONTACT,
component: ContactComponent
},
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
示例2 home.component.ts和home.component.html:
将routes.ts
文件导入home/about/contact.component.ts
。
然后在home/about/contact.component.html
内向您的变量中提及:
<a [routerLink]="routes.HOME">Home</a>
<a [routerLink]="routes.ABOUT">About</a>
<a [routerLink]="routes.CONTACT">Contact</a>
您的目标
通过这种方式,您可以实现两个目标:
routes.ts
文件)。