2014-10-18 4 views
0

У меня есть field.scala.html, который должен взять элемент управления в качестве ввода и отобразить его.Передайте ссылку на класс шаблона в движке шаблона рамки Play2

Прямо сейчас я так:

@field("shop", "name", true) { (modelName, fieldName, required) => 
    @textInput(modelName, fieldName, required) 
} 

Но я хотел бы сделать это следующим образом: @field ("магазин", "имя", правда) (TextInput)

I см 2 способами это можно было бы сделать, но не уверен, если это возможно:

  1. Как-то с помощью отражения вызвать textInput.apply с соответствующими параметрами.
  2. сделать TextInput реализовать некоторые черты и поле будет требуется экземпляр этого конкретного признака (больше типа сейфа)

Может быть, есть лучший способ?

ответ

1

Шаблоны - это просто функции. Если field.scala.html берет:

(String, String, Boolean) => Html 

И textInput.Scala.html имеет следующее объявление параметра:

@(modelName: String, fieldName: String, required: Boolean) 

Тогда то, что вы хотите сделать будет просто работать. Если не попробовать передать textInput.apply.

+0

Да, @field ("shop", "name", true) (textInput.apply) работает. Можно ли сделать шаблон реализацией признака? –

+0

Я только изучаю игру. Узнали о помощниках шаблонов. Будут использовать их, чтобы написать свои собственные для создания угловых форм js. –

Смежные вопросы