我正在使用基于JQuery的文件上传插件将图像文件直接上传到S3。该插件工作正常,在模型中实现的上传代码也很实用。我的问题是文件完成其快速旅程后会发生什么。Javascript中的Rails标签呈现
该插件接受一个回调'onLoad',该回调在上传完成后执行。为了回调起作用,所需要的只是一个Javascript函数,你知道,它会做任何事情。好的。我想要的是回调加载一个部分,将替换上传形式与图像的显示。因此,这里是我如何指定回调:
onLoad: function (evt, files, index, xhr, handler) {
(document).ready(function($) {
$('.container').html('<%= escape_javascript(render :partial => "pictures/picture_editor", :locals => { :picture => @picture }, :layout => false) %>')});
}
那么 - 我不想要的,当然,是针对“渲染”标签前的回调渲染,但是这确实是什么发生。加载页面后,立即出现错误,因为Rails正在尝试呈现该标记,而不等待执行Javascript或其他任何内容 - Rails在视图中看到标记,并且想要呈现它。我试着研究一个答案,我觉得我必须丢失的东西痛苦显而易见 - 但我怎么加载部分从jQuery回调,如果我不能在视图中指定渲染标记?我错过了什么?
如果答案非常明显,我很抱歉。
此javascript是否包含在您的js文件或rjs tempalte中? – raidfive 2011-01-30 04:47:58
它在部分被模板加载,但我想把它放在一个js文件中就没有问题。 – Lockjaw 2011-01-30 05:06:38