0
我对ajax的配置文件发表了评论。当有人添加评论页面不重新加载,所以我有问题与Flash消息。Rails ajax和jquery noty插件的flash消息
我comments_controller这个样子的:
@comment = @profile.comments.includes(:user).new(params[:comment])
if @comment.save
flash[:add_comment_success] = "Comment added"
respond_to do |format|
format.html {redirect_to :back}
format.js
end
else
我对使用Flash的消息评论create.js.erb是这样的:
var flashError = "<%=flash[:add_comment_success]%>";
if (flashError){
$("#flash_messages").html("<div class='messages_notify'><div id='message-add_comment_success'><p class='message_content'>" +flashError + "</p></div></div>");
}
而且我app.js是这样的:
$(document).on("ready page:change", function() {
noty_load();
});
function noty_load(){
$(".messages_notify #message-add_comment_success").each(function(){
generate('success', 'comment added');
});
}
我认为ajax负载有问题。我必须以某种方式检查app.js是否加载了ajax,然后运行noty_load()。当我检查萤火虫,我看到闪光灯通知,但noty只是没有看到它没有页面重新加载。如何在ajax请求发出时运行noty_load?
确定它的工作原理,但我怎么能删除通知?在页面上,当我添加评论时,只有一个通知,但是当我重新加载它或去其他地方时,它会生成下一个3 noty – Wordica
$(document).unbind('ajaxComplete');当我这样做时,它只显示一个更多的noty(不是3但是一个额外的noty)如何删除多余的noty – Wordica
@Michael检查我编辑的答案。我在显示函数的末尾添加了'.remove()',以便在显示消息后立即删除消息。你不需要解除绑定。 – akhanubis