2014-12-13 2 views
0

Я использую Play 2.3.7 Java, и я пытаюсь отображать шаблоны. Я могу заставить его работать, но только с использованием действительно уродливого синтаксиса. У меня есть то, что работает до сих пор: https://gist.github.com/aaron235/c21866dd7bff0ba3fc0cНежелательный синтаксис в шаблонах платформы воспроизведения

Очевидно, что наличие кучи блоков с фигурным скобками HTML не является лучшим способом сделать это. Мой идеал «home.scala.html» выглядел бы примерно так: https://gist.github.com/aaron235/4f446dfa41feb7d02458

Я хотел бы иметь именованные параметры, которые анализируются в 'main.scala.html', но я не могу найти какие-либо ресурсы, которые имеют смысл , после тщательного поиска SO, пытаясь найти информацию в «Play for Java» Николя Леру и Сиетсе де Капер и прочесывая остальную часть Интернета. Любая помощь приветствуется.

ответ

0

В разделе the template use cases documentation вы можете найти раздел, посвященный вашей проблеме в конце Макет параграф. Здесь можно найти два разных способа объявления блоков контента для конкретных страниц.

Применив информацию из документации на ваш взгляд будет выглядеть так:

@() 

@title = { 
<title>Welcome to MessageWorks.</title> 
}, 

@stylesheets = { 
<link type="text/css" rel="stylesheet" href="/styles/main.css" /> 
... 
}, 

@javascripts = { 
<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.1.min.js"></script> 
... 
}, 

@page = { 
<h1>MessageWorks</h1> 
... 
} 

@main(title)(stylesheets)(javascripts)(page) 

Вы должны определить каждый раздел как многоразовый блок и чем просто передать их в основной шаблон в качестве параметров.

+0

Спасибо. Я действительно забыл, что эти вещи фактически исполняемые Scala, что меняет вещи. Я нашел свое собственное решение, я отправлю его в качестве комментария к своему собственному сообщению в дополнение к этому в надежде, что когда-нибудь смогу помочь кому-то. – user3140645

0

В итоге я нашел решение своей проблемы. Моя настройка оказалась похожей на this, что более или менее то, чем я занимаюсь. По сути, я определяю «main.scala.html» как функцию, которая принимает эти 4 аргумента, перечисленные вверху, а затем в «home.scala.html», я определяю 4 переменные, заполненные некоторым HTML, а затем передаю их в мой function 'main.scala.html'. Работает как шарм, и я могу разглядеть другие другие файлы структуры simialr в основной.