【问题标题】:Access the Knockout Obeserable object property while binding HTML在绑定 HTML 时访问 Knockout Obeserable 对象属性
【发布时间】:2018-06-02 14:06:30
【问题描述】:

我,有一个可观察的属性如下

var ReportViewmodel = { 
    responseDetailsSetUpData: ko.observable({
            Pagination: ko.observable({
                Pager: ko.observable({
                    TotalItems: ko.observable(),
                    CurrentPage: ko.observable(),
                    PageSize: ko.observable(),
                    TotalPages: ko.observable(),
                    StartPage: ko.observable(),
                    EndPage: ko.observable(),
                    ShowingItem: ko.observable()
                })
            }),
            Data: ko.observableArray([])
        })
}
$(document).ready(function () {
    ko.applyBindings(ReportViewmodel, document.getElementById("ReportForm"));
});

当我尝试在 html 中绑定属性时,我收到错误消息 $root.responseDetailsS​​etUpData(...).Pagination 不是函数

我尝试访问此链接中描述的属性

Knockout.js how to access the inner object property on data-bind

<td colspan="2" class="mdl-data-table__cell--non-numeric"><span data-bind="text: $root.responseDetailsSetUpData().Pagination().Pager().ShowingItem"></span></td>

错在哪里,我想不通。

谁能告诉我

【问题讨论】:

  • 这是一个适用于 Knockout 2.0 的提琴手:jsfiddle.net/muc6e072。正如@notmeanymore 所说,responseDetailsSetUpData 可能不在您的视图模型的根目录中。
  • 我,更新了代码
  • 我更新了提琴手,没有 jQuery:jsfiddle.net/muc6e072/2。你能更新这个提琴手给我们一个不起作用的例子吗?

标签: jquery html knockout.js knockout-2.0 knockout-mapping-plugin


【解决方案1】:

我不确定,因为您提供的代码不足以说明问题,但我认为问题在于您的 $root。在这种情况下,您的 $root 可能不是具有 responseDetailsS​​etUpData 的虚拟机

【讨论】:

  • 我,已经更新了代码。请检查并告诉我
  • 为什么需要在绑定中添加$root?可以提供更多的HTML代码还是发布到代码sn-p?
猜你喜欢
  • 2018-09-21
  • 1970-01-01
  • 1970-01-01
  • 2014-06-09
  • 2015-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多