玩斯卡拉';'预期但'@'在控制器的@Inject()中发现错误

时间:2015-07-06 05:31:37

标签: scala drop-down-menu playframework playframework-2.3 typesafe-activator

我是play scala frame work的新用户,在我的项目中,我想选择multiple values in drop down为此目的,我在select.scala.html中使用了http://silviomoreto.github.io/bootstrap-select/这个插件,并添加了所需内容.css,.js个文件 的 select.scala.html

 @import helper._

@(field: play.api.data.Field, options: Seq[(String,String)], args: (Symbol,Any)*)(implicit handler: FieldConstructor, messages: play.api.i18n.Messages)
<html>
<head> 
        <link rel="stylesheet" type="text/css" href="@routes.Assets.at("stylesheets/bootstrap-select.css")">
        <link rel="stylesheet" type="text/css" href="@routes.Assets.at("stylesheets/bootstrap-select.min.css")">
<script type="text/javascript" src="@routes.Assets.at("javascripts/bootstrap-select.js")"></script> 
</head>

@input(field, args:_*) { (id, name, value, htmlArgs) =>
    @defining( if( htmlArgs.contains('multiple) ) "%s[]".format(name) else name ) { selectName =>
    @defining( ( !field.indexes.isEmpty && htmlArgs.contains('multiple) ) match {
            case true => field.indexes.map( i => field("[%s]".format(i)).value ).flatten.toSet
            case _ => field.value.toSet
    }){ values =>
        <select id="@id" name="@selectName" @toHtmlArgs(htmlArgs) class="selectpicker" multiple> 
            @args.toMap.get('_default).map { defaultValue =>
                <option class="blank" value="">@defaultValue</option>
            }
            @options.map { v =>
                <option value="@v._1" @if(values.contains(v._1)){selected="selected"}>@v._2</option>
            }
        </select>
    }}
}
</body>
</html>

Employees.scala controller class

package controllers

import play.api.mvc._
import play.api.data._
import play.api.data.Forms._
import views._
import models._
import play.api.i18n.Messages._

object Employees @Inject()(val messagesApi: MessagesApi)  extends Controller with I18nSupport { 
---
----
}

编译项目时,显示以下错误

D:\employee>activator compile
[info] Loading project definition from D:\employee\project
[info] Set current project to employee(in build file:/D:/employee/)
[info] Compiling 37 Scala sources and 1 Java source to D:\employee\target\scala-2.11\classes...
[error] D:\employee\app\controll
ers\Employees.scala:11: ';' expected but '@' found.
[error] object Employees @Inject()(val messagesApi: MessagesApi)  extends Contr
oller   with I18nSupport {
[error]                   ^
[error] one error found
[error] (compile:compileIncremental) Compilation failed please help me to fix this issue.

1 个答案:

答案 0 :(得分:0)

你应该使用课程。对象具有与guice托管依赖项不同的范围和生命周期。

class Employees @Inject()(val messagesApi: MessagesApi)