类型不匹配;发现:需要一些[String]:play.api.templates.Html

时间:2012-11-05 13:53:48

标签: javascript scala playframework type-mismatch

我是scala和Java Play的新手。我正在看一个看起来像这样的代码,但我收到了上述错误。尽管添加了花括号等,但我无法解决这个问题。任何帮助都非常感谢。 对不起,我忘了提到错误出现在@main中。即使我用@main(用户名)替换Some(用户名)也没有喘息的机会。路由这是相关代码的外观

CONF /路由

GET     /Login                controllers.Application.Login(username:String)

app / view / Login.scala.html看起来像这样

@(username: String)(implicit request: RequestHeader)

@main(Some(username)) {

<div class="page-header">
    <h1>Login <small>You are Logging in as @username</small></h1>
</div>

<div id="onError" class="alert-message error">
    <p>
        <strong>Oops!</strong> <span></span>
    </p>
</div>

<script type="text/javascript" charset="utf-8">

    $(function() {

        var WS = window['MozWebSocket'] ? MozWebSocket : WebSocket
        var loginSocket = new WS("@routes.Application.UserLogin(username).webSocketURL()")

        var receiveEvent = function(event) {
            var data = JSON.parse(event.data)

            // Handle errors
            if(data.error) {
                loginSocket.close()
                $("#onError span").text(data.error)
                $("#onError").show()
                return
            } else {
                $("#onChat").show()
            }


        }

    })

</script>
}

1 个答案:

答案 0 :(得分:1)

根据错误消息,您提供了Some[String],其中play.api.templates.Html是预期的。根据您提供的代码,最有可能的候选人是:

@main(Some(username)) {

基于此,我将其替换为:

@main(Html(username)) {

假设主视图的第一个参数属于Html类型。