我正在使用CMS的API向页面添加HTML日期选择器元素,但不允许我向外部元素添加任意属性,因此无法为onclick设置数据绑定。
但是,它确实允许我在更改日期时设置onchange Javascript回调,并且我想知道是否可以使用此回调与我的Knockout视图模型进行交互。
基本上,我得到了一些呈现的HTML,它看起来非常简化。
<div id="my-calendar">
<!-- calendar stuff is rendered here -->
</div>
当日历日期更改时,我可以执行任意代码。
答案 0 :(得分:1)
您始终可以使用ko.dataFor
方法获得对视图模型的引用。它在文档中有些隐藏,但是您可以在页面"Using unobtrusive event handlers"上了解它:
[...]淘汰赛提供了两个帮助程序功能, 您可以识别与DOM元素关联的数据:
- ko.dataFor(element)-返回可用于与元素绑定的数据
- ko.contextFor(element)-返回DOM元素可用的整个绑定上下文。
该方法接受一个DOM元素。如果为它提供DOM元素,则将其绑定在视图模型上,然后您将获得视图模型作为回报。您也可以为其提供DOM,例如Knockout组件,您将获得该组件的视图模型。