2015-09-01 118 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