Knockoutjs afterRender没有在本机模板上触发

时间:2012-03-20 14:33:39

标签: knockout.js knockout-2.0

考虑一些使用MVC局部视图创建对话框的HTML标记。 当在viewmodel上设置selectedMember时,将填充对话框并调用openDialog事件,该事件调用Jquery对话框(“打开”)。

我使用afterRender事件来确保动态创建对话框后不引人注意的验证。但是,永远不会调用afterRender函数吗?

<div id="dlgAddMember" class="hidden" data-bind="with: selectedMember, openDialog: selectedMember, afterRender:hookupValidation">
        @Html.Action(ekmMvc.People.AddMemberDialog())
</div>

有谁知道为什么这不起作用。使用Jquery模板引擎似乎可以正常工作。

1 个答案:

答案 0 :(得分:5)

您需要将其指定为:

data-bind="template: { data: selectedMember, if: selectedMember, afterRender: hookupValidation }"

如果没有为模板指定名称,那么它将使用匿名模板。所以,这相当于with和afterRender。