【发布时间】:2017-09-15 03:05:37
【问题描述】:
我正在使用无容器控制流语法进行 'if' 绑定:
<!-- ko if: property -->
<div>
<button type="button">My Button</button>
</div>
我也在使用一个 UI 库,它的初始化需要在 JS 中调用类似这样的东西:
$("body").initLib();
这将使按钮以某种方式工作和感觉。
但由于 button 是基于 'if' 绑定添加的虚拟元素,因此库不会添加 button 的功能。
处理这种情况的最佳方法是什么? 我可以扩展虚拟元素的“if”绑定吗?
【问题讨论】:
-
你应该在你的
viewModel.property被初始化之后初始化$("body").initLib()。 -
这不会解决我的问题。
-
按钮随时被KO添加到HTML中。发生这种情况后,我需要一种调用 initLib() 的方法。
-
它不能随时添加,只有当
property字段为真或有一定值时才会添加。这样你就可以观看了。 -
您建议在 viewModel.property 初始化后调用 initLib()。它不起作用,因为如果属性为“false”,则 KO 不会将按钮添加到 DOM 中,因此 initLib() 此时不会对按钮产生任何影响。当属性变为“真”时,我需要再次以某种方式调用 initLib()。