是否存在用于确定div是否绑定到knockout view模型的函数?这是因为我有一个弹出式模态对话框在一个页面,这是绑定到查看模型点击使用javascript。因此,当我关闭模态对话框并单击它再次打开后,它将显示多个绑定错误。
如Knockout文档一节所述,使用不引人注目的事件处理程序,有两个帮助函数可能会对您有所帮助:
- 的数据
ko.dataFor(element)
—返回可用于绑定元素ko.contextFor(element)
-返回DOM元素可用的整个绑定上下文。
在您的情况下,您需要的功能是dataFor
。如果这个函数返回真值,这意味着模型被绑定到这个元素,如果值是假的,那么没有任何东西被绑定到元素
例如,HTML:
<div id="div1">
<span data-bind="text: name"></span>
</div>
<div id="div2">
</div>
和脚本:
var viewModel = {
name: ko.observable('John Doe')
};
ko.applyBindings(viewModel, document.getElementById('div1'));
您有2个div元素,其中只有一个绑定到模型。可以使用
查找绑定到元素的数据console.log(ko.dataFor(document.getElementById('div1'))); // prints object details
console.log(ko.dataFor(document.getElementById('div2'))); // prints undefined
如果你需要检查元素是否被绑定并执行一些操作你可以使用
if(ko.dataFor(document.getElementById('div1'))){
console.log('element is bound');
}
这里是jsFiddle