在MVVM模型中进行初始化是否有意义?

时间:2012-09-21 21:41:07

标签: javascript mvvm knockout.js

我是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();
}

1 个答案:

答案 0 :(得分: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();
}