有没有办法向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();
}
缺点是你不能在HAML中缩进你的JS,除非你使用:javascript过滤器。它可以用几行,但它很快就会变得混乱。
我很清楚,在大多数情况下,如果你最终在HAML模板中使用了一个复杂的脚本,那就意味着你做错了什么,而这不是我正在寻找的答案。
答案 0 :(得分:7)
无法像这样将额外属性传递给: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>