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>