2012-04-12 8 views
11

私はちょうどPlay2を使い始めましたが、私はscalaに苦しんでいます。Play2フォームの属性に - が含まれています。 "value - Symbolのメンバーではありません"

私はこのシンプルなフォームヘルパーを使ってニュースアイテムを作成しています。

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

は今、私は属性にdata-wysiwygを追加したいが、それは含まれているため - シンボルのメンバーではない - Scalaは文句を言います。 '以来

は、私はそれが働いて得ることができますシンボル(「データ・WYSIWYG」)を書くだけの素敵な方法ですが、その後、私の見解では'

私とSymbolなどと指定されたbeeingて、いくつかの属性を持つ醜いになります質問は:html5 data-属性のscala '表記を使用する方法はありますか?

答えて

9

ダッシュがマイナス記号として解釈される可能性はありません。問題が宣言を短縮することである場合、対応するシンボルを生成するために、文字列にメソッド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 
+0

ありがとうございました!私はそれのようなものに解決しなければならないと思う。すべての属性に同じ構文を使用できないということは、混乱の原因になります。 –

+0

すごく、時間を節約しました!もちろん、Symbol( "your-str")を直接追加することもできます。 – Moebius

2

また、Symbolコンパニオンオブジェクトのapplyメソッドを使用することもできます。シンボルを作成していることは非常に明白なので、これは読みやすいと思います。

scala> Symbol("data-wysiwyg"); 
res0: Symbol = 'data-wysiwyg 
関連する問題