Durandalテンプレートを使用して asp.net MVC に取り組んでいます。このデュランダル テンプレートは、Sammy ルーティング ソリューションを使用しています。
下の図に示すように、左側のメニューに表示されているルートを反映させたいと思います。
上の写真は私が取得したいものです(これは私が今のところ持っているものではありません).
私のソリューションの特徴は、すべてのルートが同じであることです。つまり、すべてのルートが「viewmodels/searchTransport」を指しており、パラメータを使用して検索をフィルタリングしたいと考えています。
だから私はユニークなview/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>
問題:isActive
すべてのルートが同じ moduleId を使用しているため、左側のメニューにすべてのルートが表示されます。したがって、メニューのすべての要素が選択されます (空白の背景、下の図を参照)。これは私が必要としているものではありません。現在のフィルターが適用された要素のみを選択したいと思います。
質問:同じルートを再利用できるようにルートを編成する方法を教えてください。ただし、それぞれに異なるパラメーターを使用し、左側のメニューでそれらの 1 つだけを選択できるようにします。
私が明確であることを願っています。そうでなければ、明確にしようとします。
ありがとう。