डेटा का उपयोग कर- * थाइमेलफ के साथ विशेषता


125

क्या मैं थाइमेल्फ के साथ डेटा- * विशेषता सेट कर सकता हूं?

जैसा कि मैंने thymeleaf प्रलेखन से समझा, मैंने कोशिश की:

<div th:data-el_id="${element.getId()}"> <!-- doesn't work -->

<div data-th-el_id="${element.getId()}"> <!-- doesn't work -->

7
यह एक बग था, जिसे थाइमेलफ 3.0 के लिए तय किया गया था । यह सवाल केवल 3.0 संस्करण के लिए प्रासंगिक है। नए लोगों के th:data-el_idलिए काम करेंगे।
गाबीएम

जवाबों:


219

हां, थाइमेल्फ प्रलेखनth:attr को बचाने के लिए - विशेषता मान सेट करना

अपने परिदृश्य के लिए, यह काम करना चाहिए:

<div th:attr="data-el_id=${element.getId()}">

XML नियम आपको एक टैग में दो बार विशेषता सेट करने की अनुमति नहीं देते हैं, इसलिए आपके पास एक th:attrही तत्व में एक से अधिक नहीं हो सकते हैं ।

नोट: यदि आप और अधिक चाहते हैं कि एक विशेषता, अलग विशेषताओं को अल्पविराम से अलग करें:

<div th:attr="data-id=${element.getId()},data-name=${element.getN‌​ame()}"> 

54
भविष्य के पाठकों के लिए बस एक नोट, आपके पास एक से अधिक वें नहीं हो सकते हैं: एक ही तत्व में attr तो बस एक का उपयोग करें और अल्पविराम द्वारा अलग-अलग विशेषताओं को अलग करें:th:attr="data-id=${element.getId()},data-name=${element.getName()}"
एंटोनियोऑटरो

5
यदि आपको एक स्ट्रिंग के हिस्से के रूप में एक चर को शामिल करने की आवश्यकता है जो आपको यह करने की आवश्यकता है:th:attr="data-id='some-text'+${element.getId()}+'some-other-text',data-name=${element.getName()}"
कबाड़ीश

1
@AntonioOtero की टिप्पणी उत्तर का हिस्सा होनी चाहिए।
डॉन चीडल

मैं चाहता हूं कि विशेषता प्रसंस्करण कुछ विशेषताओं तक ही सीमित नहीं होगा, बल्कि आमतौर पर नियंत्रित किया जाएगा। किसी ने सुना है कि यह सुविधा होगी? (मुझ पर अच्छी तरह से दोष, मैंने अभी तक संस्करण 3 की जांच नहीं की थी ;-)
डिर्क शूमाकर


7

Thymeleaf 3.0 के साथ डिफॉल्ट एट्रीब्यूट प्रोसेसर है जिसे किसी भी तरह के कस्टम फीचर्स के लिए इस्तेमाल किया जा सकता है, जैसे th:data-el_id=""बनता है data-el_id="", th:ng-app=""बनता है ng-app=""और इसी तरह। अब प्रिय डेटा विशेषता बोली की कोई आवश्यकता नहीं है।

यह समाधान मुझे पसंद है, अगर मैं मूल्य के रूप में json का उपयोग करना चाहता हूं , तो इसके बजाय:

th:attr="data-foobar='{&quot;foo&quot:'+${bar}+'}'"

आप ( शाब्दिक प्रतिस्थापन के संयोजन में ) का उपयोग कर सकते हैं :

th:data-foobar='|{"foo":${bar}}|'

अद्यतन: यदि आपको thनामस्थान पसंद नहीं है , तो आप HTML5 अनुकूल विशेषता और तत्व नामों का भी उपयोग कर सकते हैं data-th-data-foobar=""

अगर किसी को दिलचस्पी है, तो संबंधित टेम्पलेट इंजन परीक्षण यहां पाए जा सकते हैं: टेस्ट फॉर डिफॉल्ट एट्रीब्यूट प्रोसेसर

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.