1

ケース1でオプションhtml要素がselect内にバインドされないのはなぜですか?

ケース 1: 動作しない

@base{
  <select name="" value="" class="custom-select">
  @{
    println("1"); // this is printed to console             
    <option value="test">i</option> // this is not shown in html
    println("2"); // this is printed to console                     
  }
  </select>
}

ケース 2: 仕事

@base{
  <select name="" value="" class="custom-select">
  @{
    println("1"); // this is printed to console             
    <option value="test">i</option> // this is shown in html                    
  }
  </select>
}

アップデート:

すべてのオプション要素を scala テンプレートにバインドするループを作成するにはどうすればよいですか? 次のコードは、オプション要素をバインドしません。実際の戻り型とは何ですか? 空行?

<select name="" value="" class="custom-select">
@{
    for(i <- 1 to 10) {
        <option value="@i">@i</option>
    }
}
</select>
4

2 に答える 2

2

コード ブロック@{...}は、最後のステートメントから推測された戻り値の型を持つクロージャーです。

最初のケースでは、戻り値の型はUnitprintln(...)Unit

2 番目のブロックでは、html が返されます。

于 2013-03-26T08:12:09.890 に答える
0

最初の質問について直接話すことはできませんが、@korefn と @om-nom-nom が正しいと仮定します。ブロックがクロージャーであり、戻り値を void として解釈していること。

あなたの更新に応じて、私は試してみます:

@for(i <- 1 to 10) {
    <option value="@i">@i</option>
}

これは私が過去に使用した方法です。また、ネストされた @if ブロックを使用して、選択したオプションを別の方法で処理し、ドキュメントの読み込み時に選択されるようにすることも役立つことがわかりました。

于 2013-03-27T13:44:07.337 に答える