Javascript jqDialog内部KnockoutJS如果绑定
我在if绑定(“选项卡”)中有jqDialogs。在我转到另一个选项卡并返回之后,它会导致初始化jqDialogs并创建一个新实例=>因此我有两个或更多(取决于从一个选项卡跳到另一个选项卡的次数)相同的对话框,而不是一个。 谢谢Javascript jqDialog内部KnockoutJS如果绑定,javascript,knockout.js,Javascript,Knockout.js,我在if绑定(“选项卡”)中有jqDialogs。在我转到另一个选项卡并返回之后,它会导致初始化jqDialogs并创建一个新实例=>因此我有两个或更多(取决于从一个选项卡跳到另一个选项卡的次数)相同的对话框,而不是一个。 谢谢 您可能需要使用visible绑定。注意if绑定上的: if扮演着与可见绑定类似的角色。区别在于 在可见的情况下,包含的标记始终保留在DOM和 始终应用其数据绑定属性-仅应用可见绑定 使用CSS切换容器元素的可见性。如果有约束力, 但是,实际添加或删除DOM中包含的标记
您可能需要使用
visible
绑定。注意if
绑定上的:
if扮演着与可见绑定类似的角色。区别在于
在可见的情况下,包含的标记始终保留在DOM和
始终应用其数据绑定属性-仅应用可见绑定
使用CSS切换容器元素的可见性。如果有约束力,
但是,实际添加或删除DOM中包含的标记,
并且仅当表达式为true时才将绑定应用于子体
因此,每次都会删除并重新添加您的div,从而导致init绑定被一次又一次地处理。您是否尝试在div中用
可见的绑定替换
绑定?我使用if绑定而不是visible来获得一些渲染和初始化性能。上面的代码只是一个选项卡的一小部分(一个对话框)。答案是thnks!是的,我知道。。。但是,除了将对话框存储在if绑定之外,还有其他解决方案吗?也许bindinghandler中有一些处理?为什么不使用可视绑定?我使用if绑定而不是visible来获得一些渲染和初始化性能。上面的代码只是一个选项卡的一小部分(一个对话框)。只有当可见绑定可见时(并在可见绑定时订阅它以执行初始化),您才能将bindinghandler修改为init Thnx!你能举个例子吗?
<!-- ko if: IsTabVisible-->
<div data-bind="jqDialog:{buttons:[{ text: '@Resources.Resource.Save',
click: Save},{ text: '@Resources.Resource.Cancel',
click: UndoChanges}], modal: true, autoOpen: false,
close: UndoChanges, title: "title"},
dialogVisible: Isvisible, jqButton:{
index: 0, disabled: HasError}">
//some content
</div>
<!-- /ko -->