मेरे पास एक टेम्पलेट है जो इस तरह से एक <div> के भीतर सीएसएस को पृष्ठभूमि छवि प्रस्तुत करता है style="background-image: url({{>~facilityImagePathDisplay(#data)}})"

विजुअल स्टूडियो को यह पसंद नहीं है और यह कोई बड़ी बात नहीं है, लेकिन मैं यह देखना चाहता था कि क्या ऐसा करने का कोई उचित तरीका है। मैंने प्रलेखन के माध्यम से पढ़ा। अन्य स्टैक प्रश्न और नीचे डॉक्स के आधार पर बनाया गया था। यह विशेष रूप से सभी दस्तावेज़ों से लिंक करता है JsViews css-tag में तर्क

<div class="tile-image" data-link="css-background-image{:~facilityImagePathDisplay(#data)}" >

उपरोक्त कथन बिल्कुल इसे div में आउटपुट करता है। <div class="tile-image" data-link="css-background-image{:~facilityImagePathDisplay(#data)}"> तो ऐसा लगता है कि यह हेल्पर फ़ंक्शन को सक्रिय नहीं कर रहा है और कुछ भी प्रस्तुत नहीं कर रहा है। क्या मुझे कुछ याद नहीं आ रहा है?

0
Daniel Jackson 18 जून 2020, 20:27

1 उत्तर

सबसे बढ़िया उत्तर

यह निर्भर करता है कि आप JsViews की link() विधि चला रहे हैं, या केवल render() JsRender की विधि।

आपका पहला संस्करण दोनों मामलों में काम करेगा, लेकिन केवल सीएसएस शैली को प्रस्तुत कर रहा है। दूसरे संस्करण का उपयोग केवल तभी किया जाएगा जब आप डेटा-बाइंडिंग आदि के लिए JsViews की link() विधि चला रहे हों। (इसलिए यदि आप डेटा-बाइंडिंग एक नया मान ट्रिगर करते हैं तो पृष्ठभूमि छवि को गतिशील रूप से अपडेट किया जा सकता है)।

डेटा-लिंक संस्करण के लिए, आपको यह सुनिश्चित करने की ज़रूरत है कि सहायक एक स्ट्रिंग लौटा रहा है जो न केवल "someUrl" है, बल्कि "url(someUrl)" - सही CSS डेटा url सिंटैक्स प्रदान करने के लिए है। उस स्थिति में, निम्नलिखित कार्य करना चाहिए:

data-link="css-background-image{:~facilityImagePathDisplay(#data)}"

वैकल्पिक रूप से आप सहायक को केवल "someUrl" स्ट्रिंग वापस कर सकते हैं, लेकिन फिर टेम्पलेट में "url(" और ")" स्ट्रिंग शामिल करें:

data-link="css-background-image{:'url(' + ~facilityImagePathDisplay(#data) + ')'}"
1
BorisMoore 18 जून 2020, 22:18