更新后获得"不明确的隐含值"错误

时间:2015-01-09 10:31:00

标签: scala playframework playframework-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>
    }
}

我得到的错误是:

  
    

类型=&gt;的对象PlayMagicForJava中的方法implicitJavaLang; play.api.i18n.Lang和play.api.i18n.Lang匹配的值lang     期望的类型play.api.i18n.Lang                  含糊不清的隐含值

  

我不明白这里有什么问题。删除隐式lang对我来说不是一个选项,因为在某些html帮助器中它是必要的。另外,我也不想把它变成真实的&#34;参数。我想利用暗示的优势。

有解决方法吗?

任何帮助都会很酷:)

提前致谢

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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