@implicitFieldConstructor в шаблоне scala с Play 2.8, вызывая ошибку после обновления со старой версии - PullRequest
0 голосов
/ 06 мая 2020

FieldConstructor:

@(implicit elements: views.html.helper.FieldElements, Messages: play.i18n.Messages)
@errorMessage = @{elements.args.getOrElse(Symbol("errorMessage"), "").asInstanceOf[String]}
<div class="field">
    <label for="@elements.id">@elements.label
        @if(elements.args.get(Symbol("required"))){
            <span class="mandatory-indicator">*</span>
        }
    </label>
    @elements.input

    @if(elements.args.get(Symbol("ngShow"))){
        <div class="lerror" ng-show='@elements.args.get(Symbol("ngShow"))' ng-cloak>@Messages(errorMessage)</div>
    }
    @if(elements.hasErrors){
        <div class="lerror" ng-cloak>@elements.errors.mkString(", ")</div>
    }
</div>

код, использующий его в scala шаблоне:

@(monthMap: java.util.Map[Integer, String], currentYear: Int, tabSelected:String)(implicit request: play.mvc.Http.Request, Messages: play.i18n.Messages, config: com.typesafe.config.Config, env: play.Environment, portalConfiguration: common.PortalConfiguration, fieldElements: views.html.helper.FieldElements)
@import helper._
@import customhelpers._

@implicitFieldConstructor = @{FieldConstructor(change_password_rows_field_constructor.render(fieldElements, Messages)) 

, вызывая следующую ошибку в sbt:

[error] C:\apps\ivc-play-upgrade\ivc_play2\app\views\admin\admin_login.scala.html:4: type mismatch;
[error]  found   : play.twirl.api.HtmlFormat.Appendable
[error]     (which expands to)  play.twirl.api.Html
[error]  required: views.html.helper.FieldElements => play.twirl.api.Html
[error]  Note: implicit method implicitFieldConstructor is not applicable here because it comes after the application point and it lacks an explicit result type
[error] @implicitFieldConstructor = @{ FieldConstructor(change_password_rows_field_constructor.render(FieldElements.asInstanceOf[FieldElements], Messages)) }                                                                                 ^

Простите меня если на это уже был дан ответ. Я проливал StackOverflow и другие, а также документацию по scala и Play, но мне еще предстоит найти окончательный ответ. По общему признанию, мы используем в основном Java, помимо сборки sbt и шаблонов scala. html, и я не очень разбираюсь в том, как работает scala. Я уверен, что есть простой синтаксический ответ, но я его еще не нашел. Любая помощь будет оценена. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...