1
是否有一个函数用于确定div是否绑定淘汰视图模型。这是因为我在页面中有一个弹出式模式对话框,使用javascript来点击查看模型。因此,在关闭模式对话框并单击它再次打开后,它会显示多个绑定错误。检查一个div是否绑定到淘汰视图模型
是否有一个函数用于确定div是否绑定淘汰视图模型。这是因为我在页面中有一个弹出式模式对话框,使用javascript来点击查看模型。因此,在关闭模式对话框并单击它再次打开后,它会显示多个绑定错误。检查一个div是否绑定到淘汰视图模型
正如在淘汰赛文档部分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元素,只有其中的一个必然的典范。你可以发现,通过使用
所以,如果你需要检查是否元素绑定,并执行一些动作绑定到一个元素的数据,你可以使用
if(ko.dataFor(document.getElementById('div1'))){
console.log('element is bound');
}
这里是jsFiddle
这些如果父元素与Knockout绑定,可以给出* false positive *。因此,除了检查真值之外,最好检查它是您期望的视图模型对象。 –
@MichaelBest这是一个很好的观点,然而这取决于应用程序的逻辑。如果你只想知道元素是否被绑定,那么检查真值就足够了,如果你需要确保对象是你所期望的 - 你需要验证 – dotnetom