我有一个文件上传组件,它通过模板绑定(bind)到 View 模型 (UploadViewModel
)。文件上传对话框通过自定义 Knockout 绑定(bind) (uploadFileDialog
) 进行初始化。当用户单击“选择文件...”按钮时,并且当用户选择要上传的文件时,将创建 UploadViewModel,并且应触发 fileuploadadd
事件,该事件应调用 fileSelected
方法,然后“开始”按钮应该可见。这似乎不会发生。使其工作的唯一方法是每次都重新初始化文件上传对话框(uploadSelectFile
方法中的注释代码)。
为什么需要重新初始化?
代码:http://jsfiddle.net/FKYwB/
最佳答案
您的事件从未被触发。
实际上,您没有绑定(bind)到正确的元素。
您的 uploadFileDialog
应位于模板中的 form
标记上,如下所示:
<form id="fileupload" action="" method="POST" enctype="multipart/form-data"
data-bind="uploadFileDialog: { maxFileSize: 500000000, autoUpload: false },
event: { fileuploadadd: fileSelected}">
<!-- -->
</form>
Updated fiddle
关于javascript - 为什么 jQuery 文件上传与 KnockoutJS 一起使用时需要重新初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24405601/