我刚刚开始使用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