2012-04-12 36 views
11

Tôi vừa mới bắt đầu với Play2 và tôi đang đấu tranh với scala.Thuộc tính biểu mẫu Play2 có - trong đó "giá trị - không phải là thành viên của Biểu tượng"

Trong chế độ xem, tôi có trình trợ giúp biểu mẫu đơn giản này để tạo một mục tin tức.

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

Bây giờ tôi muốn thêm một data-wysiwyg đến các thuộc tính, nhưng vì nó có chứa một - scala phàn nàn về - không phải là một thành viên của Symbol.

từ ' chỉ là một cách tốt đẹp của văn bản Symbol ("data-wysiwyg") Tôi có thể lấy nó làm việc, nhưng sau đó quan điểm của tôi sẽ trông xấu xí với một số thuộc tính beeing định với Symbol và những người khác với '

My câu hỏi là: có cách nào để sử dụng ký hiệu scala ' cho thuộc tính html5 data- không?

Trả lời

9

Tôi không nghĩ điều đó có thể xảy ra vì dấu gạch ngang sẽ được hiểu là dấu trừ. Nếu vấn đề là rút ngắn tuyên bố, tại sao không thêm phương thức s vào các chuỗi để tạo ra ký hiệu tương ứng (tương tự như phương pháp r để tạo ra 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

Cảm ơn bạn đã trả lời! Tôi đoán tôi sẽ phải giải quyết một chuyện như thế. Không thể sử dụng cùng cú pháp cho tất cả các thuộc tính sẽ thêm vào sự nhầm lẫn. –

+0

Tuyệt vời, đã cứu tôi rất nhiều thời gian! Tất nhiên bạn có thể trực tiếp thêm Symbol ("your-str"). – Moebius

2

Bạn cũng có thể sử dụng phương pháp áp dụng đối tượng đồng hành Symbol. Tôi nghĩ rằng điều này dễ đọc hơn, vì nó làm cho nó rất rõ ràng rằng bạn đang tạo ra một biểu tượng:

scala> Symbol("data-wysiwyg"); 
res0: Symbol = 'data-wysiwyg 
Các vấn đề liên quan