Ich versuche nur Rails Helfer aus meinem coffeescript zu rufen.Coffesscript Variablen in Ruby Codestücken
Das Problem ist, dass Kaffee Variablen in Ruby-Codestücken, die in <%= ... %>
Blöcke sind nicht verfügbar sind. Und wenn sie mit #{}
verarbeitet werden, übersetzt es in JS falsch. Also, lass mich das illustrieren. Dies ist ein Stück .js.coffee.erb
Datei:
<% environment.context_class.instance_eval { include InputsHelper } %>
$('#input_input_type').change ->
t = $('#input_input_type').val()
$('.input_address .help-block').html('<%= input_type_hint(t) %>')
Dieser Code erzeugt ein solcher Fehler: undefined local variable or method 't' for #<#<Class:0x007f5e75ebd860>:0x007f5e785d1410>
Ok, lassen wir 't' in #{}
:
<% environment.context_class.instance_eval { include InputsHelper } %>
$('#input_input_type').change ->
t = $('#input_input_type').val()
$('.input_address .help-block').html("<%= input_type_hint(#{t}) %>")
Dies in einer falschen JS übersetzt Weg. Die letzte Saite sieht wie folgt aus: $('.input_address .help-block').html("<%= input_type_hint(" + t + ") %>");
Zitate gebrochen werden, so dass es bewirkt, dass Schienen mit dem Fehler fallen:
syntax error, unexpected ';', expecting ')' ; _erbout.force_encoding(__ENCODING__)^
Auf diese Weise weiß ich nicht, wie dies zu bewerkstelligen. Gibt es einen Weg, es zu tun?
Das Problem scheint zu sein, dass Sie versuchen, eine serverseitige Methode von der Clientseite auszuführen – user000001