从没有数据绑定的元素中调用敲除视图模型

时间:2018-12-19 23:18:59

标签: knockout.js

我正在使用CMS的API向页面添加HTML日期选择器元素,但不允许我向外部元素添加任意属性,因此无法为onclick设置数据绑定。

但是,它确实允许我在更改日期时设置onchange Javascript回调,并且我想知道是否可以使用此回调与我的Knockout视图模型进行交互。

基本上,我得到了一些呈现的HTML,它看起来非常简化。

<div id="my-calendar">
    <!-- calendar stuff is rendered here -->
</div>

当日历日期更改时,我可以执行任意代码。

1 个答案:

答案 0 :(得分:1)

您始终可以使用ko.dataFor方法获得对视图模型的引用。它在文档中有些隐藏,但是您可以在页面"Using unobtrusive event handlers"上了解它:

  

[...]淘汰赛提供了两个帮助程序功能,   您可以识别与DOM元素关联的数据:

     
      
  • ko.dataFor(element)-返回可用于与元素绑定的数据
  •   
  • ko.contextFor(element)-返回DOM元素可用的整个绑定上下文。
  •   

该方法接受一个DOM元素。如果为它提供DOM元素,则将其绑定在视图模型上,然后您将获得视图模型作为回报。您也可以为其提供DOM,例如Knockout组件,您将获得该组件的视图模型。