2015-09-01 273 views
2

我有一個小的問題,正在執行的JavaScript代碼不考慮ruby條件語句。Javascript執行儘管ruby條件語句

儘管兩件JS正在執行,但只顯示了正確的HTML應用程序。 (如果通知,我只看到<div role="notice">,如果它是錯誤,我只看到<div role="alert">但裏面的JavaScript肯定是不管執行)

- if notice 
    .row 
    %div{role: 'notice'} 
     :javascript 
     toastr.success('#{notice}','Success') 
     }) 
- if alert 
    .row 
    %div{role: 'alert'} 
     :javascript 
     $(function() { 
     toastr.error('#{alert}','Error') 
     }) 

我必須失去了一些東西很明顯,但我可以似乎沒有發現它是什麼。

非常感謝您的幫助

+2

似乎不是JS的問題,它與您的本地變量的警報和通知。在每個if語句中添加一個Rails.logger.info語句,例如'Rails.logger.info(「Inside alert:#{alert}」)',你會看到它在兩個地方都有。 – trh

+0

檢查'= notice'和'= alert'語句發生了什麼(在haml中輸出值)。用false替換'notice'和'alert'來檢查你是否在家。 – Felix

+0

感謝您的建議傢伙。 (函數(){圍繞JS調用。 – Nahgfgdfg

回答

0

試試這個。我更正了一些縮進。

- if notice 
    .row 
    %div{role: 'notice'} 
     :javascript 
     $(function() { 
      toastr.success('#{notice}','Success') 
     }) 

- if alert 
    .row 
    %div{role: 'alert'} 
     :javascript 
     $(function() { 
      toastr.error('#{alert}','Error') 
     }) 
+0

你好,謝謝你的回覆 你的格式化工作,我只需要刪除$(函數()函數) {和})周圍的電話。 再次感謝 – Nahgfgdfg