Frage

Ich habe eine Schiene Aktion erstellen, das einige Jquery in einer Datei zurückzuschicken:

create.js.erb

var appearance = $("<%= escape_javascript(render(:partial => @appearance)) %>").effect("highlight", {color: '#E6ff00'}, 2000);
$("#sortable").append(appearance);
$("#new_appearance")[0].reset();

Ich habe angefangen mit HAML und will wissen, wie ich dies soll zu konvertieren. Kann ich js.haml? Wenn ja, was sollte das Markup aussehen?

War es hilfreich?

Lösung

Eigentlich JS in HAML Rückkehr ziemlich einfach ist, benutzen Sie einfach die:. Einfachen Filter und legt alles, was Sie in # ausgewertet werden sollen {}

:plain
  var appearance = $("#{escape_javascript(render(:partial => @appearance)}").effect("highlight", {color: '#E6ff00'}, 2000);
  $("#sortable").append(appearance);
  $("#new_appearance")[0].reset();

Verwenden Sie nicht die: JavaScript-Filter, wie es alles in einem Tag umschließen wird, die nicht notwendig ist,

.

Wenn Sie eine gewisse Logik verwenden müssen, nur gab. Ebene innerhalb der Verschachtelung

- if params[:printing]
  :plain
    $('#print-view').html("#{escape_javascript(render 'print_preview')}");

Es ERB.

Andere Tipps

Haml ist wirklich gemeint HTML zu erzeugen. Sie könnten in der Theorie, verwenden create.js.haml, aber ERB macht viel mehr Sinn, wenn Sie Javascript gerade schreiben.

Nun sieht aus wie Sie das nicht brauchen! = Vor jeder Zeile. Die folgenden Werke für mich ganz gut. Im mit Rails 3 und neueste Version von HAML

$('#comments_table_header').after('#{escape_javascript(render :partial => 'row', :locals => { :comment => @comment })}');

In einem js.haml wäre es etwa so aussehen

!= "var appearance = $('<%= escape_javascript(render(:partial => @appearance)) %>').effect('highlight', {color: '#E6ff00'}, 2000);"
!= "$('#sortable').append(appearance);"
!= "$('#new_appearance')[0].reset();"

Beachten Sie die HAML! = Syntax, die den erzeugten Text ist HTML verhindert entkommen. Ich stimme zu, dass ERB ist eine bessere Passform hier, aber für die Konsistenz der Anteile könnte man noch den HAML Weg gehen will.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top