Aurelia路由config.map中href选项中的动态参数

时间:2017-02-21 15:20:25

标签: aurelia aurelia-router

这似乎是一个非常简单的问题,但它让我发疯了......

有谁知道如何在href路由配置选项中指定动态:id 参数?

以下遗憾的是:

    config.map([
        // ... default parameterless routing here
        {
            route:[':id/request'],
            moduleId:'processes/bdd/request/request',
            name:'Request', title:'Request', href:`#/bdd/request/${id}/request`, settings:{type:'Request', icon:''}, nav:true,
        },
        {
            route:[':id/requestAuth'],
            moduleId:'processes/bdd/request/requestauthorization',
            name:'RequestAuthorization', title:'Request Authorization', href:`#/bdd/request/${id}/requestAuth`, settings:{type:'Request', icon:''}, nav:true,
        },
        // ... some additional mappings here
    ]);

1 个答案:

答案 0 :(得分:0)

我有一个类似的用例,我可以通过向路由器添加一个管道步骤来实现这一点,这会改变配置。

我的用例可能略有不同,因为我只想让路线处于活动状态时项目显示在导航栏中 - 比如我有路线/abc/def/:id和{{ 1}} - 当活动路线为ABC或GHI时,只有那些项目会出现在导航栏中,但当活动路线为DEF时,它应出现在导航栏中,单击它会导致相同的DEF ID你现在正在看。所以我的路线配置包括一个设置,指示路线只有在活动路线时才会出现在导航栏中。

以下是我的实际configureRouter函数的有趣部分:

/ghi

以下是configureRouter(config, router) { config.addPreActivateStep(Preactivate); // explained below config.map([ // some routes { route: 'patients/:patientId', name: 'patient-master', moduleId: 'patients-and-cases/patient-master/patient-master', title: 'Patient', nav: true, settings: { renderOnlyWhenActive: true }, href: '#' // it doesn't matter what this is }, // more routes ]); } 类,它将href设置为preactivate:

Preactivate

如果与我不同,您希望它始终显示在导航栏中,这仍然有效 - href将保持设置为路径处于活动状态时设置的最后一项。在这种情况下,您可能希望将其初始化为某个有意义的默认值。