2017-10-13 84 views
1

我在Rails 5應用程序中使用Gritter通知,並且無法找到刪除通知彈出窗口的默認標題的方法。我想補充Gritter波紋管:Rails,Gritter - 刪除默認標題

<%= js add_gritter(flash[:notice], title: 'I dont need you', sticky: false) %> 

嘗試:

<%= js add_gritter(flash[:notice], title: false, sticky: false) %> 
<%= js add_gritter(flash[:notice], title: nil, sticky: false) %> 
<%= js add_gritter(flash[:notice], title: '', sticky: false) %> 
<%= js add_gritter(flash[:notice], title: ' ', sticky: false) %> 

而且還彈出使用默認的標題出現 - 「通知」。試圖搜索整個應用程序的項目「通知」或「砂礫」,但沒有發現任何相關信息。

如何擺脫它?

回答

1

在創業板add_gritter方法將options[:title]爲「通知「如果options[:title].blank?返回true。

「髒」的選擇是重新定義它,用的選項,而不是*args哈希,並呈現標題,如果它是作爲一個選項參數傳遞,如:

def add_gritter(text, options={}) 
    if %w(success warning error notice progress).include?(options[:image].to_s) 
    options[:image] = image_path("#{options[:image]}#{options[:image].to_s == 'progress' ? '.gif' : '.png'}") 
    end 
    notification = Array.new 
    notification.push("jQuery(function(){") if options[:nodom_wrap].blank? 
    notification.push("jQuery.gritter.add({") 
    notification.push("image:'#{options[:image]}',") if options[:image].present? 
    notification.push("sticky:#{options[:sticky]},") if options[:sticky].present? 
    notification.push("time:#{options[:time]},") if options[:time].present? 
    notification.push("class_name:'#{options[:class_name]}',") if options[:class_name].present? 
    notification.push("before_open:function(e){#{options[:before_open]}},") if options[:before_open].present? 
    notification.push("after_open:function(e){#{options[:after_open]}},") if options[:after_open].present? 
    notification.push("before_close:function(e){#{options[:before_close]}},") if options[:before_close].present? 
    notification.push("after_close:function(e){#{options[:after_close]}},") if options[:after_close].present? 
    notification.push("on_click:function(e){#{options[:on_click]}},") if options[:on_click].present? 
    notification.push("title:'#{escape_javascript(options[:title])}',") if options[:title].blank? # Here 
    notification.push("text:'#{escape_javascript(text)}'") 
    notification.push("});") 
    notification.push("});") if options[:nodom_wrap].blank? 
    text.present? ? notification.join.html_safe : nil 
end 

但gritter。 js文件有一個if來檢查title有任何內容,所以你應該要處理自己和編輯它,只是爲了檢查的文本,如:

//We might have some issues if we don't have a title or text! 
if (!params.text) { 
    throw 'You need to fill out the text parameter.'; 
} 
1

聽起來不是最好的方式,但工作。如果有任何其他的解決方案 - 請隨時:)

.gritter-title { 
    display: none; 
} 

編輯:

由於我使用SCSS,這是更好的:

<%= js add_gritter(flash[:notice], sticky: false, :on_click => remove_gritter, :time => 100000, class_name: 'no-title') %> 
.no-title { 
    .gritter-title {  
     display: none; 
    } 
}