Angular Routes - 避免硬编码字符串

时间:2017-11-22 10:05:44

标签: angular routing

我有点担心在我的Angular应用程序中使用硬编码的路由字符串。这看起来有点不对劲! e.g。

 this._router.navigate(['dashboard/customer', customer.CustomerId]);
path: 'customer',
component: CustomerComponent,

有解决方法吗?

2 个答案:

答案 0 :(得分:2)

在路由模块中为路由器路径定义一个静态变量,然后在整个应用程序中使用它。例如:

定义路径路径:

  export class AppRoutes {
        public static CUSTOMER: string = "customer";
        public static ERROR: string = "error";
    }

路线配置:

const routes: Routes = [ 
  {
  path: AppRoutes.CUSTOMER, component: CustomerComponent
  }
];

导航:

this._router.navigate(["/" + AppRoutes.CUSTOMER, customer.CustomerId]);

答案 1 :(得分:1)

我们已经命名了路线,但是当Angular处于Beta状态时(或者它是RC),这个概念就死了。

您可以使用包含路径属性的全局对象来执行此操作,也可以使用函数执行此操作。

import { routes } from '../global-settings';

// with strings
this._router.navigate([routes.dashboard.customer, customer.CustomerId]);

// with functions
this._router.navigate(routes.dashboard.customer(customer.CustomerId));