Задайте опции за филтър в ruby ​​HAML

Има ли някакъв начин за добавяне на опции (HTML атрибути) към HAML филтрите?

Исках да направя нещо подобно:

: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();
  }

Недостатъкът е, че не можете да отстъпите своя JS в HAML, освен ако не използвате филтъра :javascript. Добре е за няколко реда, но може бързо да се обърка.

Наясно съм, че в повечето случаи, ако получите сложен скрипт в HAML шаблон, това означава, че правите нещо нередно и това не е отговорът, който търся.


person Jim    schedule 30.01.2014    source източник


Отговори (1)


Няма начин да подадете допълнителни атрибути към филтъра :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>
person matt    schedule 30.01.2014