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']}}
相同。这不仅适用于路线,而且适用于许多地方