是否有一个函数用于确定div是否绑定到视图模型。这是因为我在一个页面中有一个弹出模式对话框,它被绑定到使用javascript查看模型。因此,在我关闭模态对话框并单击它再次打开后,它将显示多个绑定错误。
答案 0 :(得分:2)
如Knockout文档部分Using unobtrusive event handlers中所述,有两个帮助函数可以帮助您:
ko.dataFor(element)
- 返回可用于绑定元素的数据ko.contextFor(element)
- 返回DOM元素可用的整个绑定上下文。
在您的情况下,您需要的功能是dataFor
。如果此函数返回truthy值,则表示模型绑定到此元素,如果值为falsy,则没有任何内容绑定到元素
例如,您有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