Атрибуты формы Play2 с - in them "value - не является символом символа"

Я только что начал с Play2, и я боюсь с scala.

В представлении у меня есть этот простой помощник формы, чтобы создать новостной элемент.

@textarea(
  newsItemForm("content"),
  '_label -> "Content",
  'rows -> 3,
  'cols -> 50,
)

Теперь я хотел бы добавить атрибут data-wysiwyg, но так как он содержит a - scala, жалуется - не являясь членом Symbol.

так как ' - это просто хороший способ написания символа ( "data-wysiwyg" ), я могу заставить его работать, но тогда мои взгляды будут выглядеть уродливыми с некоторыми атрибутами, указанными с помощью Symbol, а другие с '

Мой вопрос: есть ли способ использовать нотацию scala ' для атрибутов html5 data-?

Ответ 1

Я не думаю, что это возможно, потому что тире будет интерпретироваться как знак минуса. Если дело в том, чтобы сократить объявление, почему бы не добавить метод s в строки для создания соответствующего символа (аналогично методу r для создания regexp)?

class SymbolString( str: String ) {
  def s = Symbol(str)
}

implicit def str2symstr( str: String ) = new SymbolString(str)

scala> "hello".s
res20: Symbol = 'hello

scala> "data-wysiwyg".s
res21: Symbol = 'data-wysiwyg

Ответ 2

Вы также можете использовать метод apply объекта Symbol companion. Я думаю, что это более читаемо, так как очень очевидно, что вы создаете символ:

scala> Symbol("data-wysiwyg");
res0: Symbol = 'data-wysiwyg