【问题标题】:How to display a property in JavaScript object using Knockoutjs?如何使用 Knockoutjs 在 JavaScript 对象中显示属性?
【发布时间】:2014-07-31 12:59:59
【问题描述】:

我是 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>

我的主要问题是如何让 HTML 通过 viewmodel 显示模型的属性(文本)?我在其他问题中发表了评论,希望得到一些帮助。

提前致谢!

【问题讨论】:

    标签: javascript html mvvm knockout.js


    【解决方案1】:

    所以我推荐this post 作为一本好书。

    回答两个附加评论的问题:这完全取决于您作为参数传递的内容。当您实例化您的视图模型时会提供重要的信息,但您忽略了。

    按照说明,您需要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,其中描述了两种不同的场景。

    【讨论】:

    • 非常感谢您的帮助!对不起,我没有提到“自我”是什么(它是“这个”)
    猜你喜欢
    • 1970-01-01
    • 2012-07-16
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多