我正在Magnific Popup(灯箱)内部使用Carrierwave宝石.我想做的就是上传图片后,它将显示新上传的图片.
目前,从灯箱上传图片后,它将继续显示您最初查看的图片,并显示一条“成功”消息,表示您已成功上传图片.
当前设置是用户单击照片,这将打开包含其画廊照片的灯箱.在灯箱内,您可以删除当前照片,上传新照片或将其设为头像.
photos.js.coffee:
jQuery ->
$('form#new_photo').fileupload
dataType: "script"
add: (e, data) ->
file = data.files[0]
data.context = $(tmpl("template-upload", file))
$('#new_photo').append(data.context)
data.submit()
progress: (e, data) ->
if data.context
progress = parseInt(data.loaded / data.total * 100, 10)
data.context.find('.bar').css('width', progress + '%')
stop: (e, data) ->
$('.upload').hide()
照片控制器:
def create
@photo = Photo.create(params[:photo])
@photo.user = current_user
if @photo.save
flash[:notice] = "Successfully created photos."
redirect_to :back
else
render :action => 'new'
end
end
show.html.slim:
-if @user.photos.present?
.slider_container
h4 Photos
a.left_arrow href="#"
img alt="" src="/assets/left_arrow.png" /
ul.slider.parent-container
= hidden_field_tag 'current_index',0
[email protected]_with_index do |photo, index|
li class="#{index > 2 ? 'hide' : ''}"
= link_to image_tag(photo.image_url(:thumb)), "#" + dom_id(photo)
div id="#{dom_id(photo)}" class="mfp-hide"
center
= image_tag(photo.image_url(:popup))
- if @user == current_user
= button_to('Set as Profile Image', [:avatar, photo], class: 'btn')
'
= button_to "remove", photo, :confirm => 'Are you sure?', :method => :delete, class: 'btn'
= form_for Photo.new do |f|
= f.label :image, "Upload photos:"
= f.file_field :image, multiple: true, name: "photo[image]"
script#template-upload type="text/x-tmpl"
.upload
| {%=o.name%}
.progress
.bar style=("width: 0%")
解决方法:
我个人更喜欢使用http://blueimp.github.io/jQuery-File-Upload/
>复杂的任务,例如停止上传请求.
>使用浏览器上传而不上传XHR文件
>异步上传
它还具有文档https://github.com/blueimp/jQuery-File-Upload/wiki/API
如果您想自己做,请使用图片网址将json发送回去.
var imageurl = "";
$('#inputValue').attr("src", imageurl);
例如我将输入值绑定到URL
$('#inputName').bind('input',function(){
$('#inputValue').attr("src", $(this).val());
});
演示http://jsfiddle.net/margusmartsepp/83w51u85/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。