使用变量作为 属性 名称(例如在 angular 路由器中)
Use variable as property name (for example in angular router)
是否可以在 angular 路由器中使用字符串变量作为插座名称?
我想使用这样的东西:
const outletName = 'myrouteroutlet';
this.router.navigate([
{ outlets: { myrouteroutlet: ['pathname'] } },
]);
但是该变量不会被解释为变量,而是被解释为 属性 名称,因此路由器会尝试查找名为 outletName 而不是 myrouteroutlet 的插座。
要使用变量的 value 而不是变量的 name 作为键,将键包装在 [
]
.所以,这将是:
const outletName = 'myrouteroutlet';
this.router.navigate([
{ outlets: { [outletName]: ['pathname'] } },
]);
这与:{ outlets: { myrouteroutlet: ['pathname'] } }
相同。这不仅适用于路线,而且适用于很多地方。
是否可以在 angular 路由器中使用字符串变量作为插座名称? 我想使用这样的东西:
const outletName = 'myrouteroutlet';
this.router.navigate([
{ outlets: { myrouteroutlet: ['pathname'] } },
]);
但是该变量不会被解释为变量,而是被解释为 属性 名称,因此路由器会尝试查找名为 outletName 而不是 myrouteroutlet 的插座。
要使用变量的 value 而不是变量的 name 作为键,将键包装在 [
]
.所以,这将是:
const outletName = 'myrouteroutlet';
this.router.navigate([
{ outlets: { [outletName]: ['pathname'] } },
]);
这与:{ outlets: { myrouteroutlet: ['pathname'] } }
相同。这不仅适用于路线,而且适用于很多地方。