【问题标题】:Javascript executing despite ruby conditional statement尽管 ruby​​ 条件语句执行 Javascript
【发布时间】:2015-11-26 20:49:35
【问题描述】:

我在执行 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')
      })

我一定遗漏了一些明显的东西,但我似乎找不到它是什么。

非常感谢您的帮助

【问题讨论】:

  • 似乎不是 JS 的问题,它与您的本地变量有关,以获取警报和通知。在每个 if 语句中添加 Rails.logger.info 语句,例如'Rails.logger.info("Inside alert: #{alert}")`,你会看到它在两个地方都有效。
  • 检查= notice= alert 语句发生了什么(打印出haml 中的值)。将noticealert 替换为false 以检查您是否在家。
  • 感谢大家的建议。另一个变量确实是空的,但是当我在 JS 调用周围删除 $(function () { 时,问题得到了某种纠正。

标签: javascript jquery ruby-on-rails ruby conditional-statements


【解决方案1】:

试试这个。我已经更正了一些缩进。

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

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

【讨论】:

  • 您好,感谢您的回复您的格式有效,我只需要在调用周围删除 $(function () { 和 })。再次感谢
猜你喜欢
  • 2020-08-19
  • 2020-02-16
  • 1970-01-01
  • 1970-01-01
  • 2012-02-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-30
相关资源
最近更新 更多