क्या मैं थाइमेल्फ के साथ डेटा- * विशेषता सेट कर सकता हूं?
जैसा कि मैंने thymeleaf प्रलेखन से समझा, मैंने कोशिश की:
<div th:data-el_id="${element.getId()}"> <!-- doesn't work -->
<div data-th-el_id="${element.getId()}"> <!-- doesn't work -->
क्या मैं थाइमेल्फ के साथ डेटा- * विशेषता सेट कर सकता हूं?
जैसा कि मैंने thymeleaf प्रलेखन से समझा, मैंने कोशिश की:
<div th:data-el_id="${element.getId()}"> <!-- doesn't work -->
<div data-th-el_id="${element.getId()}"> <!-- doesn't work -->
जवाबों:
हां, थाइमेल्फ प्रलेखनth:attr
को बचाने के लिए - विशेषता मान सेट करना ।
अपने परिदृश्य के लिए, यह काम करना चाहिए:
<div th:attr="data-el_id=${element.getId()}">
XML नियम आपको एक टैग में दो बार विशेषता सेट करने की अनुमति नहीं देते हैं, इसलिए आपके पास एक th:attr
ही तत्व में एक से अधिक नहीं हो सकते हैं ।
नोट: यदि आप और अधिक चाहते हैं कि एक विशेषता, अलग विशेषताओं को अल्पविराम से अलग करें:
<div th:attr="data-id=${element.getId()},data-name=${element.getName()}">
th:attr="data-id=${element.getId()},data-name=${element.getName()}"
th:attr="data-id='some-text'+${element.getId()}+'some-other-text',data-name=${element.getName()}"
या आप इस Thymeleaf बोली का उपयोग कर सकते हैं https://github.com/mxab/thymeleaf-extras-data-attribute और आप कर सकेंगे
<div data:el_id="${element.getId()}">
Thymeleaf 3.0 के साथ डिफॉल्ट एट्रीब्यूट प्रोसेसर है जिसे किसी भी तरह के कस्टम फीचर्स के लिए इस्तेमाल किया जा सकता है, जैसे th:data-el_id=""
बनता है data-el_id=""
, th:ng-app=""
बनता है ng-app=""
और इसी तरह। अब प्रिय डेटा विशेषता बोली की कोई आवश्यकता नहीं है।
यह समाधान मुझे पसंद है, अगर मैं मूल्य के रूप में json का उपयोग करना चाहता हूं , तो इसके बजाय:
th:attr="data-foobar='{"foo":'+${bar}+'}'"
आप ( शाब्दिक प्रतिस्थापन के संयोजन में ) का उपयोग कर सकते हैं :
th:data-foobar='|{"foo":${bar}}|'
अद्यतन: यदि आपको th
नामस्थान पसंद नहीं है , तो आप HTML5 अनुकूल विशेषता और तत्व नामों का भी उपयोग कर सकते हैं data-th-data-foobar=""
।
अगर किसी को दिलचस्पी है, तो संबंधित टेम्पलेट इंजन परीक्षण यहां पाए जा सकते हैं: टेस्ट फॉर डिफॉल्ट एट्रीब्यूट प्रोसेसर
th:data-el_id
लिए काम करेंगे।