在nav-bar.html中我有
<li repeat.for="row of router.navigation | routeLanguageFilter2" class="${row.isActive ? 'active' : ''}">
我认为为路线设置过滤器是相当简单的:
export class RouteLanguageFilter2ValueConverter {
toView(routes) {
console.log(routes);
let self = this;
let res = [];
for (let r of routes) {
res.push(r);
}
return res;
}
}
但是当我登录时,路由总是[]。记录下来:/我在这里做错了什么?
修改
更改了标题和相当多的原始问题,因为事实证明我有点困惑而且没有关注主要问题。
http://plnkr.co/edit/dnCtpI?p=preview
我发现了问题,但是我很遗憾如何找到另一种方法来实现同样的目标。在我的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>
当我删除<div if.bind="xxx">
部分时,它有效。但是现在我只有其他问题,我不知道如何以其他方式解决: - )
无论如何感谢fops,但我的傻瓜并没有真正说明我的真正问题。我觉得它看起来有点太快了。 :/
答案 0 :(得分:0)
总结简短: 如果添加额外的参数(你的languageId),那么在路线上使用设置对象时缺少括号及其最佳实践
{ route: ['','welcome'], moduleId: './welcome', nav: true, title:'Welcome', settings: {languageId:13} },
答案 1 :(得分:0)
用show.bind替换if.bind就可以了。