2014-07-07 144 views
0

我現在面臨這個職位類似的問題:[提問]:Can't get the most simple knockout.js sample to work?KnockoutJS數據綁定

這是一個簡單的新聞模型一個標題,我想在一個HTML span標籤來顯示它。我能夠做出正確的js警報,但是span標記不顯示值。

將applyBindings放入onload調用的答案不起作用。它最初是在文檔就緒功能中。

下面的代碼示例:

HTML:

Title: <span data-bind="text: Title"> </span> 

JS:

function NewsItem(data) { 
    this.NewsItemId = ko.observable(data.NewsItemId); 
    this.Title = ko.observable(data.Title); 
} 

function NewsItemViewModel() { 
    var self = this; 
    self.NewsItemId = ko.observable(); 
    self.Title = ko.observable(); 

    $.ajax({ 
     type: "POST", 
     url: "GetNewsItemById", 
     data: "{idstring:'1'}", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function (results) { 
      self.Title = results.d.Title; 
      alert(self.Title); 
     }, 
     error: function (err) { 
      alert(err.status + " - " + err.statusText); 
     } 
    }); 
} 

$(document).ready(function() { 
    ko.applyBindings(new NewsItemViewModel()); 
}); 

感謝您的幫助!

回答

0

在數據調用後,您正在更改self.Title的類型和值。

請嘗試以下方法設置Title

self.Title(results.d.Title); 
+0

非常感謝您!沒有意識到self.Title = results.d.Title之間有如此多的區別。和self.Title(results.d.Title); – Joe