Использование ValueConverter для фильтрации маршрутов в Аурелии - маршруты всегда пусты
В 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">
отчасти это сработало. Однако теперь у меня просто есть другая проблема, которую я не знаю, как решить другими способами:-)
В любом случае спасибо фопс, но мой plunkr действительно не иллюстрировал мою реальную проблему. Я сделал это слишком быстро, кажется.:/
2 ответа
краткая сводка: в скобках отсутствовали, и лучше всего использовать объект настроек на маршруте при добавлении дополнительных параметров (your languageId)
{ route: ['','welcome'], moduleId: './welcome', nav: true, title:'Welcome', settings: {languageId:13} },