Я нашел несколько ответов в Интернете по моей проблеме, но все для более старых версий игры, которые больше не работают.переменные в представлениях воспроизведения
Я пытаюсь найти способ использования переменной как части пути к шаблону. Я понимаю, что это приведет к удалению проверки типов и т. Д., Но для генератора/прототипа/внутреннего инструмента и не является чем-то, что увидит общественность/внешний мир.
вот codez:
Лучший ответ я могу найти как произведение вокруг:
def index(page: String) = Action {
page match {
case "something" => Ok(views.html.examples.something())
case "else" => Ok(views.html.examples.else())
case "another" => Ok(views.html.examples.elements.another())
}
}
идеально что-то, как это было больше смысла:
def index(page: String) = Action {
Ok(views.html.getClassFromStringOrSomething(page));
}
Я использую новейшая игровая платформа (2.5. *) с scala.
использует матч только в одном направлении? Должно быть динамично, почему нужно возвращать представление?
n.b. Я нашел множество предложений в Интернете, которые используют play.api.templates.Html/play.twirl.api.Html
, которые, похоже, больше не работают, Html
не могут быть найдены, поэтому я предполагаю, что у api есть другие версии.
С помощью этого я получаю:
def index(page: String, parent: String) = Action {
val clazz: Class[_] = Play.current.classloader.loadClass(page)
val render: Method = clazz.getDeclaredMethod("render")
val view = Some(render.invoke(clazz).asInstanceOf[play.twirl.api.Html])
Ok(view)
}
Это дает мне ошибку Cannot write an instance of Some[play.twirl.api.Html] to HTTP response. Try to define a Writeable[Some[play.twirl.api.Html]]
и это, где я застрял
FYI: 'play.api.templates.Html' изменен на' play.twirl.api. Html' (Twirl - это название механизма шаблонов, который был выделен из Play.) – Mikesname
Как вы ожидаете предоставить argume nts к этим динамическим представлениям? Вероятно, вам лучше всего использовать совершенно другой шаблонный движок, такой как [Jtwig] (http://jtwig.org/). Игра не привязана к Twirl - это просто значение по умолчанию. – Mikesname
аргументы будут динамической частью URL-адреса. Представьте, что у меня есть 1000 предварительно сделанных вихревых представлений, все названные в соответствии с там url. Я не хочу добавлять контроллер/матч для каждого из них. – atmd