Angular 使用变量作为属性名称(例如在角度路由器中)
在角度路由器中是否可以使用字符串变量作为出口名称? 我想用这样的方式:Angular 使用变量作为属性名称(例如在角度路由器中),angular,angular-ui-router,Angular,Angular Ui Router,在角度路由器中是否可以使用字符串变量作为出口名称? 我想用这样的方式: const outletName = 'myrouteroutlet'; this.router.navigate([ { outlets: { myrouteroutlet: ['pathname'] } }, ]); 但是变量不会被解释为变量,而是属性名,因此路由器尝试查找名为outletName而不是myrouteroutlet的出口。要使用变量的值而不是变量的名称作为键,请将键包装在[]中。因此
const outletName = 'myrouteroutlet';
this.router.navigate([
{ outlets: { myrouteroutlet: ['pathname'] } },
]);
但是变量不会被解释为变量,而是属性名,因此路由器尝试查找名为outletName而不是myrouteroutlet的出口。要使用变量的值而不是变量的名称作为键,请将键包装在
[
]
中。因此,这将是:
const outletName = 'myrouteroutlet';
this.router.navigate([
{ outlets: { [outletName]: ['pathname'] } },
]);
这与:{outlets:{myrouteroutlet:['pathname']}}
相同。这不仅适用于路线,而且适用于许多地方