我试图将我的播放应用程序更新为2.3。
我写了一个自己的html助手:
@(field: play.api.data.Field, options: Seq[(String,String)], args: (Symbol,Any)*)(implicit handler: views.html.helper.FieldConstructor, lang: play.api.i18n.Lang)
@input(field, args:_*) { (id, name, value, htmlArgs) =>
@options.map { v =>
<label class="radio inline">
<input type="radio" id="@(id)_@v._1" name="@name" value="@v._1" @(if(value == Some(v._1)) "checked" else "") @toHtmlArgs(htmlArgs)> <span>@v._2</span>
</label>
}
}
我得到的错误是:
类型=&gt;的对象PlayMagicForJava中的方法implicitJavaLang; play.api.i18n.Lang和play.api.i18n.Lang匹配的值lang 期望的类型play.api.i18n.Lang 含糊不清的隐含值
我不明白这里有什么问题。删除隐式lang对我来说不是一个选项,因为在某些html帮助器中它是必要的。另外,我也不想把它变成真实的&#34;参数。我想利用暗示的优势。
有解决方法吗?
任何帮助都会很酷:)
提前致谢
答案 0 :(得分:2)
你可以安全地删除隐式的lang参数,因为Play 2.3在其隐式上下文中已有一个。
答案 1 :(得分:0)
选项要么删除声明隐式lang的位置(检查导入,可能存在import play.core.j.PlayMagicForJava._
),要么显式传递值。第二个参数列表中的隐式参数仍然可以显式传递。