使用ValueConverter过滤Aurelia中的路由-路由始终为空

使用ValueConverter过滤Aurelia中的路由-路由始终为空,aurelia,Aurelia,在nav-bar.html中,我有 <li repeat.for="row of router.navigation | routeLanguageFilter2" class="${row.isActive ? 'active' : ''}"> 但是,当我控制台时,路由总是[]。注销它们:/我在这里做错了什么 编辑: 更改了标题和很多原来的问题,因为结果我有点困惑,没有集中在主要问题上 我解决了这个问题,但是我很迷茫如何找到另一种方法来实现同样的目标。在我的nav-bar.ht

在nav-bar.html中,我有

<li repeat.for="row of router.navigation | routeLanguageFilter2" class="${row.isActive ? 'active' : ''}">
但是,当我控制台时,路由总是[]。注销它们:/我在这里做错了什么

编辑:

更改了标题和很多原来的问题,因为结果我有点困惑,没有集中在主要问题上

我解决了这个问题,但是我很迷茫如何找到另一种方法来实现同样的目标。在我的nav-bar.html中,我有如下内容:

<div if.bind="true"> <!-- could be anything -->
            <require from="../styles/blah.css"></require>
            <div class="container" id="banner">
                <img src="images/logo.png" />
            </div>
            <require from="nav-bar"></require>
            <nav-bar router.bind="router"></nav-bar>
        <div class="page-host">
            <router-view></router-view>
        </div>
    </div>

当我移除
部分时,它工作了。然而,现在我有了另一个问题,我不知道如何用其他方法来解决:——)

无论如何,谢谢fops,但我的plunkr并没有真正说明我真正的问题。看来我做得有点太快了/

小结: 缺少括号,如果添加额外参数(您的languageId),最好在路由上使用设置对象

小结: 缺少括号,如果添加额外参数(您的languageId),最好在路由上使用设置对象


用show.bind替换if.bind成功了。

用show.bind替换if.bind成功了

<div if.bind="true"> <!-- could be anything -->
            <require from="../styles/blah.css"></require>
            <div class="container" id="banner">
                <img src="images/logo.png" />
            </div>
            <require from="nav-bar"></require>
            <nav-bar router.bind="router"></nav-bar>
        <div class="page-host">
            <router-view></router-view>
        </div>
    </div>
 { route: ['','welcome'],  moduleId: './welcome',      nav: true, title:'Welcome', settings: {languageId:13} },