4

我正在使用 PlayFramework 2.0 开发一个项目。在阅读了一些 scala 之后,我想在 View 模板中嵌入一些动态代码。所以,我做了以下事情:

@{
    def getMystring(sequence:Int) = {
        if(patternForm != null && 
            patternForm.get().windowTreatments != null &&
            patternForm.get().windowTreatments.size() >= sequence + 1)
            sequence+""
        else 
            "" 
    }
}

<input type = "text" value = @getMystring(1)></input>
...

我很确定它会起作用,但我得到了一个 "not found: value getMyString Error occurred" 。我做了什么明显错误的事情吗?

4

2 回答 2

5

尝试像模板一样启动它,像这样

@getMystring(sequence:Int) = {

[...]

看看https://github.com/playframework/Play20/blob/master/samples/scala/computer-database/app/views/list.scala.html

于 2012-05-06T01:22:03.807 回答
3

问题是 play 定义了一个非常狭窄的范围,并且无法识别当前大括号之外的 defs。

您可以更改 def 的最后一个大括号的位置以包含输入标签,然后它应该可以工作。

或者您可以按照 opensas 的建议进行操作。

@getMystring(sequence:Int) = {

[...]
于 2012-05-06T08:39:22.843 回答