Knockout で次のことを行う最善の方法を理解するのに苦労しています。
複数ページのサーバー側アプリを Knockout に移植しています。これは、さまざまなページでさまざまな機能とデータを実行します。たとえば、次のようになります。
- すべてのユーザーを一覧表示する
 - ユーザーページを表示する
 - ユーザーページを編集する
 - アカウント設定
 - 等
 
これらのさまざまなページは、共通のヘッダー、サイドバー、およびフッターと共に、各ページの主要部分に表示されます。
すべてのページ (ヘッダーとサイドバー) に共通のデータがあり、これを「単一ページ」アプリのように動作させたい (セクション間のアニメーションなど)
フィードバックをお待ちしておりますが、最善のアプローチは次のとおりだと思います。
- 「ページ」ごとにサブモデルを持つ 1 つのメイン モデル
 - ヘッダー、サイドバーなどに適用可能な一般的な観察対象
 - 「アクティブなページ」とテンプレートを示すオブザーバブル
 
例えば:
var MainModel = {
   listUsersModel: { ... },
   userModel: { ... },
   accountModel: { ... },
   commonProperty: ko.observable('Blah'),
   anotherCommonProperty: ko.observable('Blah'),
   activeSection: ko.observable('listUsers')
}
これはうまくいくと思いますが、「ページを切り替える」方法と、サーバー側の新しいデータで新しいページのモデルを更新する方法については少し曖昧です。
これを行うための最良/唯一の方法は次のとおりです。
MainModel.userModel.userId(123456)
// userModel above subscribes to userId changes, to get new server via ajax
MainModel.activeSection = 'viewUser'
?