【问题标题】:Navigate to different named outlet using a string variable使用字符串变量导航到不同的命名插座
【发布时间】:2025-12-20 11:45:06
【问题描述】:

我有以下代码:

class Example {
    .....
    exampleNavigate(namedOutlet:string, data: any) {
        const commands = [{
            outlets: {
                popup: [data.module, data.service, data.create]
            }
        }];
        let queryParams = {}
        queryParams['id'] = data.id;
        this.router.navigate(commands,  { queryParams } );
    }
    ...
}

目前,我总是导航到“弹出”插座。我可以导航到通过exampleNavigate 函数传递的namedOutlet 吗?

【问题讨论】:

    标签: javascript angular typescript angular2-routing


    【解决方案1】:

    我发现我只需要将popup: [data.module, data.service, data.create] 替换为这个[outletName] : [data.module, data.service, data.create] 就可以了。

    遵循完整的工作示例:

    class Example {
        .....
        exampleNavigate(namedOutlet:string, data: any) {
            const commands = [{
                outlets: {
                    [outletName]: [data.module, data.service, data.create]
                }
            }];
            let queryParams = {}
            queryParams['id'] = data.id;
            this.router.navigate(commands,  { queryParams } );
        }
        ...
    }
    

    【讨论】: