涉及对象模型的非法循环引用

问题描述 投票:1回答:1

当我试图将一个列表传递到Play应用程序的视图页面时,我收到一个错误。

illegal cyclic reference involving object models

错误的截图:

enter image description here

models.scala.html:

@(liValues: List[String])
@for(value <- liValues){
 <li>@value</li>
}

路由文件中的条目。

GET     /models/tictactoe                    controllers.ModelController.index

在ModelController.scala中的index方法中,我传递了值。

def index = Action {
  Ok(views.html.models(List("Link1" , "Link2" , "Link3")))
}

完成ModelController:

package controllers

import javax.inject._
import play.api.libs.json.Json
import play.api.mvc._

/**
 * This controller creates an `Action` to handle HTTP requests to the
 * application's home page.
 */
@Singleton
class ModelController @Inject()(cc: ControllerComponents) extends AbstractController(cc) {

  /**
   * Create an Action to render an HTML page with a welcome message.
   * The configuration in the `routes` file means that this method
   * will be called when the application receives a `GET` request with
   * a path of `/`.
   */
  def index = Action {
    Ok(views.html.models(List("Link1" , "Link2" , "Link3")))
  }

  def sj = Action {

      Ok(Json.toJson(List(1,2,3)).toString());

  }
}

似乎我没有在视图页中正确声明列表值?

scala playframework
1个回答
1
投票

似乎 DummyPlaceHolder.scala

package models

/*
 * Empty placeholder object to make sure templates keep compiling (due to
 * imports in template files), even if projects don't have any models.
 */
object DummyPlaceHolder

是干扰你的 views.html.models 其中也有 models 所以生成的模板 target/scala-2.13/twirl/main/views/html/models.template.scala 会有类似

import models._

object models extends ...

导致非法循环。试着把你的模板名称从 views.html.modelsviews.html.model.

© www.soinside.com 2019 - 2024. All rights reserved.