【问题标题】:After update getting "Ambiguous implicit values" Error更新后得到“不明确的隐含值”错误
【发布时间】:2015-01-09 10:30:59
【问题描述】:

我正在尝试将我的 play 应用程序更新到 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>
    }
}

我得到的错误是:

类型 => play.api.i18n.Lang 的对象 PlayMagicForJava 中的两个方法implicitJavaLang 和 play.api.i18n.Lang 类型的值 lang 匹配 预期类型 play.api.i18n.Lang 模糊的隐含值

我不明白这里有什么问题。删除隐式语言对我来说不是一个选项,因为在某些 html 帮助程序中这是必要的。此外,我不想将 lang 设为“真实”参数。我想利用implicits的优势。

有解决办法吗?

任何帮助都会很酷:)

提前致谢

【问题讨论】:

标签: scala playframework playframework-2.3


【解决方案1】:

您可以安全地删除隐式 lang 参数,因为 Play 2.3 在其隐式上下文中已经有一个。

【讨论】:

    【解决方案2】:

    选项要么删除声明隐式 lang 的位置(检查您的导入,可能存在 import play.core.j.PlayMagicForJava._),要么显式传递值。第二个参数列表中的隐式参数仍然可以显式传递。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-16
      • 2015-06-17
      • 2013-09-30
      • 2014-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多