首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular5反向路由

Angular5反向路由
EN

Stack Overflow用户
提问于 2017-12-11 11:39:29
回答 1查看 297关注 0票数 0

是否有任何内置特性或流行库允许在视图中避免硬编码urls?也许有一个库可以反向路由对象并为它们生成类型安全的构建器?

我需要这样的功能有两个原因:

  1. 硬编码的url很难支持,您不能在一个地方更改它,所以它在任何地方都会改变。
  2. 硬编码的url没有检查正确性,尽管应用程序有路由数组,并且可能在编译/启动时检查所有内容。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-11 13:00:12

如果你想要这样的东西,那你自己做就很容易了。您可以将路由导出为常量,并将其导入到您想要使用的任何地方。

步骤1

创建一个名为routes.ts的文件,在该文件中导出路由:

代码语言:javascript
复制
export const HOME = 'home';
export const ABOUT = 'about';
export const CONTACT = 'contact';

步骤2

在您想要使用这些路由的任何地方导入您的routes.ts文件,并参考您的路由:

代码语言:javascript
复制
import * as routes from './routes';

例1 app.routing.ts:

代码语言:javascript
复制
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内部参考变量:

代码语言:javascript
复制
<a [routerLink]="routes.HOME">Home</a>
<a [routerLink]="routes.ABOUT">About</a>
<a [routerLink]="routes.CONTACT">Contact</a>

你的目标

这样你就能实现你的两个目标:

  1. 您可以在一个地方( routes.ts文件)更改变量值。
  2. 您只使用在routes.ts文件中定义的路由。那样的话,路线就会一直正常工作。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47752135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档