ビューを管理し、単一のページ内で構成できるようにすることを期待して、(数時間前の時点で) Durandalを使い始めました。Knockout を使用する以前のアプローチは、太い HTML ファイルで維持するには扱いにくくなりすぎていました。
Durandal をインストール/セットアップし、ビューとビューモデルを作成できますが、ビューモデルにデータを取得して新しいビューモデルの基礎として使用する方法がわかりません。
たとえば、項目を選択するための「左側のナビゲーション バー」があります。項目が選択されると、現在のモデルで観察可能な「選択された項目」が更新されますが、右側に正しい「詳細ビュー」も読み込まれる必要があります。コンポーネント/ビューを分離するためにDurandalを試す理由については、これは別のビュー/ビューモデルから来る必要があります.
CompositionおよびUsing Compositionを含むドキュメントを読みましたが、ビューモデルにデータを渡す方法が明確ではありません。(現在のビュー/スコープ内の) 既存のモデルでビューを使用できるように思えますが、現在のモデル データ (つまり ID) の一部を使用して、「実際の」モデル データを取得したいだけです。景色。
したがって、私の質問です。
「選択した項目」などの初期データをビューモデルに渡す方法は? 私は宣言的な "compose:" バインディングを使用したいと思います。
ここで初期データを持っている/渡すというこの概念は正しい方法ですか、それともより良い代替手段がありますか? 「activeItem」が漠然と言及されているのを見たことがありますが、詳細/使用法は私をほのめかしています。
更新 1: How do we share the data between views/Pass the data view to view を見つけましたが、実際の実装では応答が不足しています。親子間でビューモデルを共有したくない (個別のビュー/ビューモデルのペア) と、宣言型アプローチ (イベントなし) を使用したい。親は子について知る必要はありませんが、子は親からデータを受け取る必要があります。
更新 2: 上記では「id」のみが必要であるとほのめかしましたが、ルーターが必ずしも適しているとは限らない、任意の基本オブジェクトで機能するアプローチが必要です。この場合、ディープ リンクは問題になりません。ただし、ルーターがこれにアプローチする方法であると思われる場合は、そのような(詳細を含む)引数を回答として投稿してください。少なくとも賛成票を投じます..