问题 Play2表单属性 - 在其中“值 - 不是Symbol的成员”


我刚开始使用Play2而且我正在与scala挣扎。

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

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

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

以来 ' 只是一种编写符号的好方法(“data-wysiwyg”)我可以让它工作,但是我的视图看起来会很丑陋 Symbol 和其他人一起 '

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


7281
2018-04-12 14:06


起源



答案:


我不认为这是可能的,因为破折号将被解释为减号。如果问题是缩短声明,为什么不添加方法 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

9
2018-04-12 14:29



感谢你的回答!我想我必须满足于那样的东西。无法对所有属性使用相同的语法会增加混乱。 - Leon Radley
太棒了,给我这么多时间!当然你可以直接添加Symbol(“你的str”)。 - Moebius


答案:


我不认为这是可能的,因为破折号将被解释为减号。如果问题是缩短声明,为什么不添加方法 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

9
2018-04-12 14:29



感谢你的回答!我想我必须满足于那样的东西。无法对所有属性使用相同的语法会增加混乱。 - Leon Radley
太棒了,给我这么多时间!当然你可以直接添加Symbol(“你的str”)。 - Moebius


你也可以使用的方法 Symbol 伴侣对象。我认为这更具可读性,因为它很明显你正在创建一个符号:

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

2
2017-10-21 23:14