2016-04-25 12 views
-2

私の問題は、私が持っているため、ループ内でいくつかのRubyコードとJavaScriptで書かれた:erbテンプレートでRuby変数を増やす方法は?

<% i = 0 %> 
for (var i = 0 ; i < array.length ; i++) 
{ 
    alert("<%= i %>"); 
    <% i += 1 %> 
} 

そして、私は常に「0」との警告は私が正しく私のi変数をインクリメントするにはどうすればよい で書かれていますか。?

+0

「配列」とは何ですか?どのように定義されていますか? – shivam

+0

配列には6つの文字列が含まれています。var array = ["january"、 "march"、 "may"、 "july"、 "september"、 "october"]; –

+0

ルビーかJSか? – shivam

答えて

0

問題は、テンプレートがERBで実行されているときにループが発生しないことです。それは、プレーンテキストとして渡されているとERBは、それが

<% i = 0 %> 
for (var i = 0 ; i < array.length ; i++) 
{ 
    alert("<%= i %>"); 
    <% i += 1 %> 
} 
ERB

によって処理 <% .. %>または <%= .. %>

に遭遇したときにのみ置き換え/実行されている - あなたはERBを介して実行時にまったく実行されていないjavascriptのループを持っています

for (var i = 0 ; i < array.length ; i++) 
{ 
    alert("0"); 
} 

だから、あなたが反復ごとに一定の"0"を警告しているJSの配列を反復処理:

は、それがブラウザに到達した時点で次のようになります。あなたのERBテンプレートでこれを書きたい:

for (var i = 0 ; i < array.length ; i++) 
{ 
    alert(i); 
} 

はERBは、バックエンド(データベース)から適切なコンテンツにsubsitutingとフロントエンドで終わるJSで何の知識や相互作用を持っていない、覚えておいてください(ブラウザで)。