2016-08-01 8 views
0

Ich schreibe einige JS-Code in something.js.haml als Antwort auf eine JS-Anfrage. Beispielcode:Schreiben von JS wenn Bedingung in something.js.haml

var users_list_container = jQuery("#user_list .manager_list"); 

if(users_list_container.length > 0) { 
    alert(); //Doesn't work 
    console.log("#{escape_javascript(render :partial => 'some')}"); 
} else { 
    //Some Code 
} 
alert(); //Works here 

Ich erhalte eine ActionView :: Template :: Fehler (Illegal Verschachtelung. Verschachtelung innerhalb Klartext ist illegal): Linie 5

Wenn ich Leerzeichen entfernen, bevor console.log, der Code wirft diesen Fehler nicht. Aber der Alarm wird nicht innerhalb des Blocks if ausgeführt, aber er wird außerhalb ausgeführt.

Bitte vorschlagen, wie kann ich schreiben JS if Zustand innen js.haml

+0

Werfen Sie einen Blick auf [diese] (http://stackoverflow.com/a/9744196/3475678) – Aleksey

+0

@Aleksey Ich brauche nur verwenden js.haml. Es macht keinen Sinn, **: javascript ** in ** html.hamil ** zu verwenden, wenn die Mehrheit meines Codes JavaScript ist. – Abhi

+0

Das kann man nicht einmal in einfachem HTML tun. Es gibt immer 'script'-Tag. – Aleksey

Antwort

1

Sie nicht haml Syntax richtig something.js.haml in Ihnen folgte. Sie müssen der Einrückung in jeder Ansichtsdatei folgen. Unten Code funktioniert für Sie.

var users_list_container = jQuery("#user_list .manager_list"); 

if(users_list_container.length > 0) { 
alert(); 
console.log("\#{escape_javascript(render :partial => 'some')}"); 
} else { 
\//Some Code 
} 
alert();