Play 2.0 टेम्पलेट इंजन के बारे में अधिक दस्तावेज नहीं है।Play 2.0 के साथ टैग को कैसे परिभाषित करें?
स्कैला टेम्पलेट का उपयोग करके कोई टैग कैसे बना सकता है?
Play 2.0 टेम्पलेट इंजन के बारे में अधिक दस्तावेज नहीं है।Play 2.0 के साथ टैग को कैसे परिभाषित करें?
स्कैला टेम्पलेट का उपयोग करके कोई टैग कैसे बना सकता है?
प्ले 2.0 में टेम्पलेट इंजन सीधे प्ले 1.0 स्कैला मॉड्यूल से आ रहा है। यदि आप अभी भी सोच रहे हैं कि स्काला जैसी कार्यात्मक भाषा किस तस्वीर को लाती है, तो यह निश्चित रूप से उन क्षेत्रों में से एक है जहां यह चमकता है।
प्रदर्शन:
स्केला वाक्य रचना में एक टैग एक समारोह कॉल की तुलना में और कुछ नहीं है। दिलचस्प क्या है, यह है कि एचटीएमएल टुकड़े खुद को कार्यों के रूप में माना जाता है, जिससे सबसे शक्तिशाली प्रतिस्थापन होता है।
के mytag.scala.html नामक एक html पृष्ठ को परिभाषित करते हैं
फ़ाइल: क्षुधा/विचारों/mytags/mytag.scala.html
@(level:String = "error", index: Int)(body: (String) => Html)
@level match {
case "success" => {
<p class="success" index="@index">
@body("green")
</p>
}
case "warning" => {
<p class="warning" index="@index">
@body("orange")
</p>
}
case "error" => {
<p class="error" index="@index">
@body("red")
</p>
}
}
टैग के ऊपर 2 अलग में 3 पैरामीटर लेता है पैरामीटर समूहों:
अब हम कैसे इस टैग का उपयोग कर सकते हैं देखते हैं: इससे पहले कि हम एक टैग (या समारोह) का उपयोग कर सकते
@import views.mytags._
@mytag("error",2) { color =>
Oops, something is <span style="color:@color">wrong</span>
}
, हम प्ले पता है, जहां यह स्थित है यह बताने के लिए की जरूरत है: इस बात का उद्देश्य है आयात कथन। ध्यान दें कि जब तक आप जावा पैकेज के साथ आयात स्थान को समायोजित करते हैं, तब तक टैग फ़ाइल का स्थान (पथ) अप्रासंगिक है।
कॉल को स्वयं ही फॉलो करता है जो कि सरल है। ध्यान दें कि हम टैग पर एक parametrized एचटीएमएल खंड पारित कर रहे हैं।
अधिक जानकारी के लिए, तो आप इस URL
पर स्केला टेम्पलेट प्रलेखन प्ले 2.0 अंत में अपने स्वयं के प्रलेखन के साथ आ जाएगा मिल सकता है।
पूरी तरह से अनावश्यक उत्तर लेकिन बस मेरे स्केल को प्रशिक्षित करने के लिए। यह काम नहीं करेगा और स्पष्ट रहने के दौरान कम होगा?
@(level:String = "error", index: Int)(body: (String) => Html)
<p class="@level" index="@index">
@body(
@level match {
case "success" => "green"
case "warning" => "orange"
case "error" => "red"
}
)
</p>
मुझे पहले उदाहरण का उपयोग करने पर एक कंपाइलर त्रुटि मिलती है। "विचार" हटाएं। आयात में समस्या
@import mytags का उपयोग करें।_
पूर्ण उदाहरण (http://www.playframework.com/documentation/2.1.1/JavaTemplateUseCases):
Let’s write a simple views/tags/notice.scala.html tag that displays an HTML notice: @(level: String = "error")(body: (String) => Html) @level match { case "success" => { <p class="success"> @body("green") </p> } case "warning" => { <p class="warning"> @body("orange") </p> } case "error" => { <p class="error"> @body("red") </p> } }
और अब यह एक और टेम्पलेट से का उपयोग करते हैं:
@import tags._
@notice ("त्रुटि") {रंग => ओह, कुछ गलत है}
मैं ईमानदारी से नहीं जानता, अभी तक एक स्कैला विशेषज्ञ नहीं है। एसओ पर एक अच्छा सवाल लग रहा है। –
मुझे जल्द ही play2.0 पुनः प्रयास करना चाहिए। पिछली बार, यह वास्तव में मेरे प्रयोगों के लिए वास्तव में बहुत कच्चा था! मैं अभी तक एक स्कैला विशेषज्ञ नहीं हूं लेकिन मैं बहुत कुछ सीखता हूं और अब तक यह एकमात्र भाषा है जो मुझे इंप्रेशन देती है कि मैं अंत में जावा को निश्चित रूप से बंद कर सकता हूं;) – mandubian
इस मामले में, यदि स्तर सफलता, चेतावनी के अलावा कुछ भी है या त्रुटि, आपके पास उस सीएसएस वर्ग के साथ एपी टैग होगा, जिसे इंडेक्स नहीं किया जा सकता है। @ ओलिवियर रिफेलो के उत्तर में, एक पी टैग केवल मुद्रित किया जाएगा यदि यह त्रुटि स्तरों में से किसी एक से मेल खाता है। – user3001