我是Knockoutjs和JavaScript的新手,需要一些建议。
在我的HTML(查看)页面中,我试图从我的Javascript对象(模型)中显示一个文本属性,它看起来像:
var object = function() {
this.text = "blah blah blah";
}
在我的对象的ViewModel中,我有:
var objectViewModel= function (object) {
var content = ko.observable(object); // or is it object.text() ?
self.section = function() {
return content.text; //or is it content ?
}
}
在我看来,我有这个:
<span data-bind="text:section"></span>
我的主要问题是如何通过viewmodel让HTML显示模型的属性(文本)?我在其他问题中发表了评论,并希望得到一些帮助。
提前致谢!
答案 0 :(得分:0)
所以我建议this post作为一个好的阅读。
要回答其他两个评论问题:这完全取决于您作为参数传递的内容。当你实例化你遗漏的viewmodel时,会提供那么重要的信息。
根据规定,您需要ko.applyBindings(new objectViewModel(new object()))
。
其次,你有self
,它来自哪里?设为this
或声明var self = this;
或提供该变量来自的其余代码。
接下来,在section
函数中,您需要“阅读”您的内容可观察内容:
return content().text
最后,在您的视图中,您需要执行section
:
<span data-bind="text:section()"></span>
作为额外的考虑因素,您可以使section
成为computed observable,并依赖于content
。
this.section = ko.computed(function() {
return content().text;
})
删除了在视图中执行的需要。查看this fiddle,其中描述了两种不同的情景。