Play2 表单属性,其中 - "value - is not a member of Symbol"



我刚刚开始使用Play2,我正在努力解决scala问题。

在一个视图中,我有这个简单的表单助手来创建新闻项。

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

现在我想为属性添加一个data-wysiwyg,但由于它包含一个 - scala 抱怨 - 不是 Symbol 的成员。

由于'只是编写 Symbol("data-wysiwyg") 的一种好方法,我可以让它工作,但是我的观点看起来会很丑陋,有些属性用 Symbol 指定,而另一些属性用'

我的问题是:有没有办法将 scala ' 表示法用于 html5 data-属性?

我认为这是不可能的,因为破折号会被解释为减号。如果问题是缩短声明,为什么不添加一个方法s到字符串中以产生相应的符号(类似于生成正则表达式的r方法)?

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

还可以使用 Symbol 伴随对象的 apply 方法。我认为这更具可读性,因为它非常明显地表明您正在创建一个符号:

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

最新更新