Я работаю над asp.net MVC с Durandal Шаблон. Этот шаблон Durandal использует решение маршрутизации Sammy.С Durandal: все мои меню, использующие один и тот же viewModel, выбираются (isActive)
Я хотел бы, чтобы мое левое меню, чтобы отразить видимые маршруты, как показано на рисунке ниже:
На рисунке выше это то, что я хотел бы получить (это не то, что я так далеко).
Особенность моего решения в том, что каждый маршрут должен быть одним и тем же. Я имею в виду: каждый маршрут указывает на «viewmodels/searchTransport», и я хотел бы использовать параметр для фильтрации моего поиска.
Так что я хотел бы иметь уникальный вид/ViewModel, но использовать их с неким фильтром для ... Фильтрующие элементы уже выставленной в ходе ...
Вот моя первая мысль:
var routes = [
{ url: 'searchTransport', moduleId: 'viewmodels/searchTransport', name: resource.advancedSearch, visible: true, settings: { transport: true, initValue: 'all' } },
{ url: 'inProgressTransport', moduleId: 'viewmodels/searchTransport', name: resource.inProgress, visible: true, settings: { transport: true, initValue: 'inProgress' } },
{ url: 'finishedTransport', moduleId: 'viewmodels/searchTransport', name: resource.finished, visible: true, settings: { transport: true, initValue: 'finished' } },
{ url: 'invoicedTransport', moduleId: 'viewmodels/searchTransport', name: resource.invoiced, visible: true, settings: { transport: true, initValue: 'invoiced' } },
{ url: 'flaggedTransport', moduleId: 'viewmodels/searchTransport', name: resource.flagged, visible: true, settings: { transport: true, initValue: 'flagged' } },
Это меню отображаются в моих shell.html так:
<ul data-bind="foreach: router.visibleRoutes">
<li data-bind="css: { menuActive: isActive }">
<a data-bind="attr: { href: hash }, html: name"></a>
</li>
</ul>
проблема: моего левое меню отображаются со всем разгромом es как isActive
, потому что все эти маршруты используются с использованием того же moduleId. И, таким образом, все элементы в моем меню выбраны (пустой фон, см. Рисунок ниже). Это не то, что мне нужно; Я хотел бы выбрать только элемент с применяемым текущим фильтром.
Вопрос: Как организовать мои маршруты, чтобы иметь возможность использовать одни и те же маршруты, но с другим параметром для каждого и иметь возможность выбирать только один из них в моем левом меню?
Надеюсь, я понятен, иначе я попробую уточнить.
Спасибо.
Вы когда-нибудь получали ответ на этот вопрос? У меня такая же проблема с проектом, над которым я работаю. – mcottingham
@mcottingham: см. Мой ответ. Это не понятно, спросите меня. – Bronzato