Javascript 为什么jQuery文件上传在与KnockoutJS一起使用时需要重新初始化?

Javascript 为什么jQuery文件上传在与KnockoutJS一起使用时需要重新初始化?,javascript,jquery,jquery-plugins,knockout.js,Javascript,Jquery,Jquery Plugins,Knockout.js,我有一个文件上传组件,它通过模板绑定到视图模型(UploadViewModel)。文件上载对话框是通过自定义敲除绑定(uploadFileDialog)初始化的。UploadViewModel是在用户单击“选择文件…”按钮时创建的,并且当用户选择要上载的文件时,fileuploadadd事件应触发,该事件应调用fileSelected方法,然后开始按钮应可见。这似乎没有发生。唯一可行的方法是每次重新初始化文件上传对话框(上传选择文件方法中的注释代码)。 为什么需要重新初始化它? 代码:您的事件永

我有一个文件上传组件,它通过模板绑定到视图模型(
UploadViewModel
)。文件上载对话框是通过自定义敲除绑定(
uploadFileDialog
)初始化的。UploadViewModel是在用户单击“选择文件…”按钮时创建的,并且当用户选择要上载的文件时,
fileuploadadd
事件应触发,该事件应调用
fileSelected
方法,然后开始按钮应可见。这似乎没有发生。唯一可行的方法是每次重新初始化文件上传对话框(上传选择文件方法中的注释代码)。
为什么需要重新初始化它?

代码:

您的事件永远不会被触发

实际上,您没有绑定到正确的元素

您的
uploadFileDialog
应该位于模板中的
form
标记上,如下所示:

<form id="fileupload" action="" method="POST" enctype="multipart/form-data" 
      data-bind="uploadFileDialog: { maxFileSize: 500000000, autoUpload: false },
                 event: { fileuploadadd: fileSelected}">
<!-- -->
</form>