当 jquery-file-upload 将图像处理为缩略图时,当我使用 Ember 渲染视图时,它无法正确显示它们。要么显示一个空画布,要么 Ember 尝试获取未找到的 blob:http。
因此,当 jquery-upload 处理图像调整大小并调用on('fileuploadprocessdone')
App.VideosNewView = Ember.View.extend(
didInsertElement: ->
self = this
$("#fileupload").fileupload(
dataType: "json"
autoUpload: false
previewCanvas: false
).on('fileuploadprocessdone', (e, data) ->
console.log "DONE"
file = data.files[0]
self.get('controller').set('addFile', file);
)
)
相应的文件被添加到 EmberController 中的文件数组中:
App.VideosNewController = Ember.ObjectController.extend(
files: []
actions:
addFile: (file) ->
@files.pushObject file
)
并且模板得到更新:
{{#each file in files}}
{{{file.preview.outerHTML}}}
{{/each}}
根据 jquery-file-upload 设置(previewCanvas),Ember 要么尝试获取 blob:http 引用,即 404 未找到
previewCanvas: false
...
GET blob:http%3A//localhost%3A3000/8e2869ad-8e44-4701-a56c-a2ad2fdafa07 404 (Not Found)
或者它呈现一个空的 HTML-canvas 元素
previewCanvas: true
...
<canvas width="80" height="45"></canvas><!-- THIS DOES NOT SHOW ANYTHING -->
如果我直接从 jquery 渲染这些,那么一切都会正确显示。
.on('fileuploadprocessdone', (e, data) ->
node = data.context.children()
node.prepend('<br>').prepend(file.preview) if file.preview
我不太明白为什么在使用 jquery 而不是 Ember 插入时这些显示正确。如何使用 Ember 正确显示这些预览?