Использование 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} },

Замена if.bind на show.bind добилась цели.

Другие вопросы по тегам