2014-01-30 7 views
7

Gibt es eine Möglichkeit, HAML-Filter Optionen (HTML-Attribute) hinzuzufügen?Optionen für einen Filter in Ruby festlegen HAML

Ich wollte so etwas tun:

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

Und das Ergebnis wäre:

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

Der nächstgelegene ich bekommen konnte ist:

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

Der Nachteil ist, dass Sie können Ihre JS-Datei nicht in HAML einrücken, es sei denn, Sie verwenden den Javascript-Filter. Es ist in Ordnung für ein paar Zeilen, aber es kann schnell unordentlich werden.

Ich bin mir bewusst, dass in den meisten Fällen, wenn Sie mit einem komplexen Skript in einer HAML-Vorlage enden, es bedeutet, dass Sie etwas falsch machen, und das ist nicht die Antwort, die ich suche.

Antwort

7

Es gibt keine Möglichkeit, zusätzliche Attribute an den :javascript Filter wie folgt zu übergeben. Sie könnten jedoch einen :plain Filter zusammen mit einem normalen script-Tag verwenden, um Einzüge Ihren JavaScript-Code zu erlauben:

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

produziert:

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

Fair enough. Vielen Dank! – Jim

Verwandte Themen