Получить шаблон scala в переменной в Play Framework

1

Допустим, есть две шаблоны scala в папке вида

  1. file1.scala.html
  2. container.scala.html

Теперь я хочу передать первый шаблон в 2-й шаблон (container.scala.html) из контроллера. Подобно:

public class Application extends Controller {
    static Result isItPossible()
    {
        Result theFile=ok(file1.render());
        return ok(container.render(theFile));
    }
}

Является ли это возможным? Если да, то как я могу это сделать?

Теги:
playframework

2 ответа

1
Лучший ответ

Вы можете передать отображаемый шаблон в шаблон container. container должен иметь некоторый параметр Html:

container.scala.html:

@(content: Html)

<p>Here my content: @content </p>

И изнутри контроллера:

public class Application extends Controller {
    return ok(container.render(file1.render()));
}
0

Стоит отметить, что вам не нужно комбинировать контейнеры для упаковки в контроллере, поскольку механизм шаблонов имеет возможность использовать макеты для него (как описано в документах). В этом случае вы можете использовать его так:

container.scala.html

@()(content: Html)
<p>Here my content: @content </p>

file1.scala.html

@container() {
    <b>this is content of <i>file1</i> template</b>
}

контроллер

public class Application extends Controller {
    static Result itIsPossible() {
        return ok(file1.render());
    }
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню