আমি কি থাইমালিফের সাথে ডেটা- * অ্যাট্রিবিউট সেট করতে পারি?
আমি থাইমেলিফ ডকুমেন্টেশন থেকে বোঝার পরে আমি চেষ্টা করেছি:
<div th:data-el_id="${element.getId()}"> <!-- doesn't work -->
<div data-th-el_id="${element.getId()}"> <!-- doesn't work -->
আমি কি থাইমালিফের সাথে ডেটা- * অ্যাট্রিবিউট সেট করতে পারি?
আমি থাইমেলিফ ডকুমেন্টেশন থেকে বোঝার পরে আমি চেষ্টা করেছি:
<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()}">
এক্সএমএল নিয়মগুলি আপনাকে কোনও ট্যাগে দু'বার অ্যাট্রিবিউট সেট করতে দেয় না, সুতরাং আপনার 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()}"
অথবা আপনি এই থাইমালিফ উপভাষাটি https://github.com/mxab/thymeleaf-extras-data-attribute ব্যবহার করতে পারেন এবং আপনি সক্ষম হবেন
<div data:el_id="${element.getId()}">
থাইমালিফ 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
নেমস্পেসটি পছন্দ না করেন তবে আপনি এইচটিএমএল 5 বন্ধুত্বপূর্ণ বৈশিষ্ট্য এবং উপাদানগুলির নামগুলিও ব্যবহার করতে পারেন data-th-data-foobar=""
।
যদি কেউ আগ্রহী হন তবে সম্পর্কিত টেম্পলেট ইঞ্জিন পরীক্ষাগুলি এখানে পাওয়া যাবে: ডিফল্ট অ্যাট্রিবিউট প্রসেসরের জন্য পরীক্ষা
th:data-el_id
কাজ করবে।