8

MVC では、「Model」は単なるデータのコード表現です (たとえば、ASP.NET MVC では、対応するフィールドを持つクラスです)。

ただし、Knockout (MVVM を使用) では、フィールドを持つオブジェクトは「ViewModel」と呼ばれます。KOの公式ドキュメントから:

モデル: アプリケーションの保存データ。このデータは、ビジネス ドメイン (送金を実行できる銀行口座など) のオブジェクトと操作を表し、どの UI からも独立しています。KO を使用する場合、通常、サーバー側のコードに対して Ajax 呼び出しを行い、この格納されたモデル データを読み書きします。

ビュー モデル: UI 上のデータと操作の純粋なコード表現。たとえば、リスト エディターを実装している場合、ビュー モデルはアイテムのリストを保持し、アイテムを追加および削除するメソッドを公開するオブジェクトになります。

例から、ViewModel はフィールドを持つオブジェクトであり、データを保持していることがわかります。これは通常、MVC のモデルによって行われます。

var myViewModel = {
    personName: ko.observable('Bob'),
    personAge: ko.observable(123)
};

だから私はここで少し迷っています。Knockout.jsドメインで「Model」と「ViewModel」は正確には何を意味しますか?

4

2 に答える 2

2

モデル
モデルは情報を保持しますが、通常は動作を処理しません

ビュー
ビューには、モデルとビューモデルの理解を必要とするデータ バインディング、イベント、および動作が含まれます。これらの動作はプロパティにマッピングできますが、View は引き続き ViewModel に対するイベントの処理を担当します。

ViewModel
ViewModel は UI レイヤーの背後にあります。ビューが必要とするデータを (モデルから) 公開し、データとアクションの両方のためにビューがアクセスするソースとして表示できます。

詳細については、次のリンクを参照して ください
。mvc と mvvm の詳細については、stackoverflow の質問を参照してください。

于 2013-12-16T10:47:22.403 に答える