我有一个场景,我使用
将div绑定到一个observablediv data-bind=with:foo
在这个div里面我有表格
我正在使用jquery验证,因此在我的js中,我调用了诸如
$(form).validate({submitHandler...
使用'with'时,submitHandler不起作用 - 如果我删除'with'语句,表单就可以了。
任何人遇到这个或知道修复?
答案 0 :(得分:1)
执行with: foo
相当于执行template: { if: foo, data: foo }
。
当您使用匿名模板(未命名,使用子级)时,绑定所做的第一件事就是将元素的子元素作为干净模板保存,然后使用该“模板”生成内容。 / p>
因此,您可能会在将元素作为模板保存之前将其添加到元素中。
如果您想使用with
绑定生成的实际元素,则可以选择使用afterRender
函数。在这种情况下,您可以指定绑定:data-bind="with: { data: foo, afterRender: myFunction }
。
以下是一些使用afterRender
:http://knockoutjs.com/documentation/template-binding.html#note_3_using_afterrender_afteradd_and_beforeremove
afterRender
函数传入一个元素数组。您可以在此时调用您的连线代码。