4

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'

?

4

1 に答える 1

1

私が必要とするものに答えるRNiemeyerの例を次に示します。

https://github.com/rniemeyer/SamplePresentation/tree/master/js

于 2012-09-10T06:06:51.370 に答える