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

标签 javascript jquery jquery-plugins knockout.js

我有一个文件上传组件,它通过模板绑定(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/

相关文章:

jquery - 在 jquery 中引用选择器比实际调用选择器更快吗?如果是这样,有多大区别?

php - 使用 PHP 从 Bootstrap Select 获取多选数据

javascript - 分页:服务器端还是客户端?

javascript - 如何在 Node.js 的目录中找到文件?

javascript - jQuery/post() : the URL called is not what I expected

javascript - 这个符号有什么作用?

javascript - jQuery 如何在删除列表中的 1 时自动调整数字列表?

javascript - 延迟一个原型(prototype)函数

javascript - Mobile safari : frame. src 与 window.location

javascript - jQuery 外部 RSS 提要解析器?