2016-08-01 11 views
0

私はJSリクエストに対する応答としてsomething.js.haml内にいくつかのJSコードを書いています。サンプルコード:もし何かの条件がJS内に記述されている場合

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 

私はActionViewを取得する::テンプレート::エラー(不正なネスティング:ネスト 内のプレーンテキストは違法である。):ライン5

私はの前にスペースを削除した場合console.log、コードはこのエラーをスローしません。しかし、警告はifブロック内で実行されませんが、ブロックの外側で実行されます。

示唆してくださいは、どのように私はあなたがsomething.js.hamlで正しくHAML構文に従っていませんでしたjs.haml

+0

は、私が唯一js.haml使用する必要がある[この](http://stackoverflow.com/a/9744196/3475678) – Aleksey

+0

@Alekseyを見てみましょう。私のコードの大半がjavascriptの場合、**:javascript ** ** ** html.haml **の中で使用するポイントはありません – Abhi

+0

これは普通のhtmlでもできません。常に 'script'タグがあります。 – Aleksey

答えて

1

内JS if条件を書くことができます。すべてのビューファイルでインデントに従わなければなりません。下記のコードはあなたのために働きます。

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(); 
関連する問題