2

私は MVVM 設計パターンに不慣れで、いくつかのサンプルを作成していると、ページ上のコンポーネントを初期化するための JavaScript コードをどこに配置すればよいかという質問に直面し続けます。それらをビュー モデルに含めるか、単純な関数を作成するか、別のオブジェクトを作成しますか?

たとえば、jquery ajax を介して入力する必要があるフォームにドロップダウンがあるとしますか? そのコードを配置するのに最適な場所はどこですか?

var viewModel = function() {
    this.firstName = ko.observable(first);
    this.lastName = ko.observable(last);
    init:function () {
        //Load components here
    }
};

$(document).ready(function () {
    viewModel.init();
}
4

1 に答える 1

2

ノックアウトでは、selfメソッドを使用する必要があります。あなたの質問に答えるには、次のような初期化コードが必要です。

var viewModel = function() {
    var self = this;
    self.firstName = ko.observable(first);
    self.lastName = ko.observable(last);
    self.retrieveData = function() {
           $.ajax({
              url: "test.html",
              success: function(data) {
                 self.firstName(data.firstName);
                 self.lastName(data.lastName);
              }
            });
    };
};

$(document).ready(function () {
   var vm = new viewModel(); 
   vm.retrieveData();
}
于 2012-09-21T21:45:51.057 に答える