javascript - 在 ruby​​ HAML 中指定过滤器的选项

标签 javascript ruby filter haml indentation

有没有办法向 HAML 过滤器添加选项(HTML 属性)?

我想做这样的事情:

:javascript{:'data-turbolinks-eval' => 'false', :foo => 'bar'}
  if(someCondition){
    doSomething();
  }

结果是:

<script 'data-turbolinks-eval'='false' 'foo'='bar'>
  if(someCondition){
    doSomething();
  }
</script>

我能得到的最接近的是:

%script{:'data-turbolinks-eval' => 'false', :foo => 'bar'}
  if(someCondition){
  doSomething();
  }

缺点是除非使用 :javascript 过滤器,否则不能在 HAML 中缩进 JS。几行没问题,但很快就会变得困惑。

我很清楚,在大多数情况下,如果您最终在 HAML 模板中使用复杂的脚本,这意味着您做错了什么,而这不是我要寻找的答案。

最佳答案

无法像这样将额外的属性传递给 :javascript 过滤器。但是,您可以使用 :plain 过滤器和普通的 script 标签来缩进您的 javascript 代码:

%script{:'data-turbolinks-eval' => 'false', :foo => 'bar'}
  :plain
    if(someCondition()) {
      doSomething();
    }

产生:

<script data-turbolinks-eval='false' foo='bar'>
  if(someCondition()) {
    doSomething();
  }
</script>

关于javascript - 在 ruby​​ HAML 中指定过滤器的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21450524/

相关文章:

javascript - 使用函数方法从一系列数组中提取数据

php - 使 ExtJS 过滤器 `int` 类型与 `equal` 比较

javascript - 修改 JavaScript 以访问变量

javascript - angularjs:如果通过指令调用服务,则 $watch 不会触发更新的服务变量

javascript - 如何调试网络 worker

ruby-on-rails - 在 Ruby On Rails 中重构模型方法

ruby - 如何授权使用 google-api-ruby-client

javascript - 你如何随机化某些数字?

ruby - 扫描方法没有按预期工作

python - 在多索引 Python Panda 数据框中过滤多个项目