Playframework 2.0在视图模板中定义函数

4

我正在使用PlayFramework 2.0开发一个项目。在阅读了一些Scala后,我想在视图模板中嵌入一些动态代码。因此,我按照以下步骤操作:

@{
    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>
...

我非常确定它会起作用,但实际上我得到了一个“未找到:value getMyString Error occurred”的错误。我做错了什么明显的事情吗?

2个回答

5

3

问题在于play定义了一个非常狭窄的作用域,并且无法识别当前花括号之外的def。

您可以将最后一个花括号的位置更改为包含输入标记,然后它应该能够正常工作。

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

@getMystring(sequence:Int) = {

[...]

既然这个模板是受 Razor 启发的,我原以为它会有类似 Razor 的作用域。但现在我知道得更清楚了 :) - Wei Ma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接