在绑定 HTML 时访问 Knockout Obeserable 对象属性
Posted
技术标签:
【中文标题】在绑定 HTML 时访问 Knockout Obeserable 对象属性【英文标题】:Access the Knockout Obeserable object property while binding HTML 【发布时间】: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.responseDetailsSetUpData(...).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。你能更新这个提琴手给我们一个不起作用的例子吗?
【参考方案1】:
我不确定,因为您提供的代码不足以说明问题,但我认为问题在于您的 $root。在这种情况下,您的 $root 可能不是具有 responseDetailsSetUpData 的虚拟机
【讨论】:
我,已经更新了代码。请检查并告诉我 为什么需要在绑定中添加$root?可以提供更多的HTML代码还是发布到代码sn-p?以上是关于在绑定 HTML 时访问 Knockout Obeserable 对象属性的主要内容,如果未能解决你的问题,请参考以下文章