2014-07-07 108 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