2012-06-27 20 views
2

我從空視圖模型開始,然後對數據庫中的數據執行ajax請求。收集的數據我使用Knockout.Mapping插件來查看模型。 像這樣:Knockout,在映射後從View Model中獲取JSON

var myName = new function(){ 
this.viewModel = {}; 
var getData = function() {  
    var mapping = { 
     'Members': { 
     create: function (options) { 
      return new UserMode(options.data); 
     } 
     } 
    } 
    $.ajax({ 
     url: 'api/board', 
     data: $.param({"BoardId": 1}), 
     dataType: 'json', 
     success: function (data, textStatus, jqXHR) { 
      this.viewModel = ko.mapping.fromJS(data, mapping); 
      ko.applyBindings(this.viewModel); 
     }, 
    }); 
} 
}; 

然後我在Chrome中打開一個JavaScript控制檯,並鍵入:

ko.toJSON(myName.viewModel); 

和結果是

"{}" 

我期望看到視圖模型與數據從服務器,而不是空物體。

+0

您是否確實調用了getData函數? – aaberg

+0

是的,我確實叫過getData函數 –

回答

0

你有點困惑,我想你應該在做你的AJAX加載的東西之前調用applybindings。

我更新了一箇舊的小提琴來複制你的問題,看看它,希望它能幫助你!

http://jsfiddle.net/ingro/Buscp/

+0

它應該以任何方式工作,但我也更喜歡首先建立綁定,然後請求數據。 –