【问题标题】:Receiving "not found: value" even the variable is define即使定义了变量,也会收到“未找到:值”
【发布时间】:2014-02-08 00:05:08
【问题描述】:

即使定义了变量,我也会收到not found: value counter。 有什么帮助吗?我是 scala 的新手,一切对我来说都是新的。谢谢

@{def counter = 0}
@for(atg <- Activity.groupContiguous(activityGroup)) {
  @if(!atg.isEmpty) {
    @views.html.activity.activityTypeGroup(atg, counter))
  }
  counter = counter + 1
}

【问题讨论】:

    标签: scala variables playframework


    【解决方案1】:

    您的代码不起作用,因为@{def counter = 0} 没有在模板范围内定义任何内容并返回Unit。我不知道在 scala 模板中定义可变变量的任何便捷方法,实际上不鼓励这样做。

    使用函数式方法可以轻松地重写代码:

    @for((atg, counter) <- Activity.groupContiguous(activityGroup).filterNot(_.isEmpty).zipWithIndex) {
      @views.html.activity.activityTypeGroup(atg, counter))
    }
    

    【讨论】:

    • 感谢vitali,补充问题。如何增加计数器值?我尝试了 counter = counter + 1 但在查看视图时结果变为 0 = counter + 1;
    【解决方案2】:

    看看其他类似的问题,你可以用zipWithIndexhttps://stackoverflow.com/a/14613877/1066240解决它

    您还会发现其他有用的示例。

    【讨论】:

      猜你喜欢
      • 2020-12-26
      • 2019-11-29
      • 2020-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多