data-bind with和form submit not firing

时间:2012-01-25 18:53:34

标签: knockout.js

我有一个场景,我使用

将div绑定到一个observable
div data-bind=with:foo

在这个div里面我有表格

我正在使用jquery验证,因此在我的js中,我调用了诸如

$(form).validate({submitHandler...

使用'with'时,submitHandler不起作用 - 如果我删除'with'语句,表单就可以了。

任何人遇到这个或知道修复?

1 个答案:

答案 0 :(得分:1)

执行with: foo相当于执行template: { if: foo, data: foo }

当您使用匿名模板(未命名,使用子级)时,绑定所做的第一件事就是将元素的子元素作为干净模板保存,然后使用该“模板”生成内容。 / p>

因此,您可能会在将元素作为模板保存之前将其添加到元素中。

如果您想使用with绑定生成的实际元素,则可以选择使用afterRender函数。在这种情况下,您可以指定绑定:data-bind="with: { data: foo, afterRender: myFunction }

以下是一些使用afterRenderhttp://knockoutjs.com/documentation/template-binding.html#note_3_using_afterrender_afteradd_and_beforeremove

的文档

afterRender函数传入一个元素数组。您可以在此时调用您的连线代码。