私は Durandal を使い始めたばかりで、すべての要素がうまく収まりつつあり、ホット タオル テンプレートを使用して作業を高速化しています。
私を悩ませているのは、ボタングループよりも複雑な階層ナビゲーション システムを作成する方法です。これが私が終わらせたいものです:
ABC
A1 B1 C1
A2 B2 C2
A、B、および C は、ルートが関連付けられていない最上位のメニューです。これらは単なるプレースホルダーです。A1、A2、B1、B2、C1、および C2 のビューとビューモデルを用意し、それらのハッシュ タグをアクティブなリンクにする必要があります。
現在の私の最善のアイデアは、親メニューを各ルートの URL に追加し、nav.html にコードを配置して、URL の解析に基づいて各ノードを適切な親に動的に追加することです。完全に動的にするには、親ノードと子ノードの両方を動的に追加します。
{
url: 'A_A1',
moduleId: 'viewmodels/A_A1',
name: 'A1',
visible: true
}
Durandal を使用した階層ナビゲーションの例をたくさん検索しましたが、まだ何も見ていません。単純な 1 次元リストを超えてナビゲーション機能を拡張するためのベスト プラクティスはありますか? ビュー名に階層情報を埋め込まなくてもこれを実行できるルーターの機能を見落としていますか?
編集:提示されたどちらのソリューションにも満足していませんでしたが、回答を正しいとマークしました。ロジック、プレゼンテーション、およびコントロールを抽象化して分離するフレームワークを選択するとき、基本的なナビゲーション シェル以上のものを提供するためだけに、これらの構造を再びマージし始めるのはばかげているように思えます。私は、このようなことがはるかに直感的になり、分離を維持できる angularjs に開発努力を移しました。近い将来、Durandal がもう少し前進できることを願っており、将来のプロジェクトのために間違いなく再評価します.