2012-09-21 42 views
2

我是新來的MVVM設計模式,並且當我構建一些樣本時,我一直在討論如何將JavaScript代碼放在頁面上初始化組件的問題。我是否將它們包含在視圖模型中,創建簡單函數或創建不同的對象?在MVVM modelView中初始化是否有意義?

例如說我有一個需要通過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(); 
} 

回答

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(); 
} 
相關問題