更新后出现 "Ambiguous implicit values" 错误
After update getting "Ambiguous implicit values" Error
我正在尝试将我的游戏应用程序更新到 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>
}
}
我得到的错误是:
both method implicitJavaLang in object PlayMagicForJava of type => play.api.i18n.Lang and value lang of type play.api.i18n.Lang match
expected type play.api.i18n.Lang
ambiguous implicit values
我不明白这里有什么问题。删除隐式语言对我来说不是一个选项,因为在某些 html 助手中这是必要的。我也不想将 lang 设为 "real" 参数。我想利用隐式的优势。
有解决办法吗?
任何帮助都会很棒 :)
提前致谢
选项要么删除声明隐式语言的位置(检查您的导入,可能存在 import play.core.j.PlayMagicForJava._
),要么显式传递值。第二个参数列表中的隐式参数仍然可以显式传递。
您可以安全地删除隐式 lang 参数,因为 Play 2.3 在其隐式上下文中已经有一个。
我正在尝试将我的游戏应用程序更新到 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>
}
}
我得到的错误是:
both method implicitJavaLang in object PlayMagicForJava of type => play.api.i18n.Lang and value lang of type play.api.i18n.Lang match expected type play.api.i18n.Lang ambiguous implicit values
我不明白这里有什么问题。删除隐式语言对我来说不是一个选项,因为在某些 html 助手中这是必要的。我也不想将 lang 设为 "real" 参数。我想利用隐式的优势。
有解决办法吗?
任何帮助都会很棒 :)
提前致谢
选项要么删除声明隐式语言的位置(检查您的导入,可能存在 import play.core.j.PlayMagicForJava._
),要么显式传递值。第二个参数列表中的隐式参数仍然可以显式传递。
您可以安全地删除隐式 lang 参数,因为 Play 2.3 在其隐式上下文中已经有一个。