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

jaf*_*ffa 3 knockout-2.0 knockout.js

考虑一些HTML标记,它使用MVC局部视图来创建对话框.当在viewmodel上设置selectedMember时,将填充对话框并调用openDialog事件,该事件调用Jquery对话框("open").

我使用afterRender事件来确保在动态创建对话框后进行不显眼的验证.但是从不调用afterRender函数?

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

有谁知道为什么这不起作用.看来这是使用Jquery模板引擎正常工作.

RP *_*yer 5

您需要指定它:

data-bind="template: { data: selectedMember, if: selectedMember, afterRender: hookupValidation }"
Run Code Online (Sandbox Code Playgroud)

如果未指定模板的名称,则它将使用匿名模板.所以,这相当于with一个afterRender.