1

为什么选项 html 元素未绑定在案例 1 中的 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

代码块@{...}是一个闭包,它具有从最后一条语句推断出的返回类型。

在第一种情况下,返回类型被推断为Unit因为println(...)返回Unit

在第二个块中返回 html。

于 2013-03-26T08:12:09.890 回答
0

我不能直接回答第一个问题,但假设@korefn 和@om-nom-nom 是正确的;该块是一个闭包,并将返回解释为无效。

为了响应您的更新,我会尝试:

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

这就是我过去使用它的方式。我还发现使用嵌套的 @if 块以不同方式处理所选选项很有帮助,以便在加载文档时选择它。

于 2013-03-27T13:44:07.337 回答