"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > स्टिमुलस आउटलेट्स का उपयोग करके पूर्वावलोकन के साथ छवियों को खींचें और छोड़ें

स्टिमुलस आउटलेट्स का उपयोग करके पूर्वावलोकन के साथ छवियों को खींचें और छोड़ें

2024-11-04 को प्रकाशित
ब्राउज़ करें:850

Drag & Drop Images with Preview using Stimulus Outlets

यह लेख मूल रूप से रेल्स डिज़ाइनर पर प्रकाशित हुआ था


पिछले लेख में मैंने स्टिमुलस के साथ अपलोड करने से पहले छवियों का पूर्वावलोकन करने का एक तरीका खोजा था।

मुझे पता है कि मैं ड्रैग एंड ड्रॉप जोड़कर इसकी कार्यक्षमता बढ़ाना चाहता हूं। साथ ही मैं दोनों कार्यात्मकताओं को एक साथ जोड़ने के लिए स्टिमुलस आउटलेट का भी उपयोग कर रहा हूं। छोटे स्टिमुलस नियंत्रकों के अधिक उन्नत उपयोग का प्रदर्शन।

मुझे लगता है कि आप पिछले उल्लेखित लेख के सभी चरणों का पालन कर चुके हैं।

चलो HTML से शुरू करते हैं। यह केवल कुछ विशेषताओं को जोड़कर अन्य HTML का उपयोग कर रहा है।

आइए dropzone_controller.js बनाएं।

import { Controller } from "@hotwired/stimulus";

export default class extends Controller {
  static targets = ["input"];

  dragOver(event) {
    event.preventDefault();
  }

  dragLeave(event) {
    event.preventDefault();
  }

  drop(event) {
    event.preventDefault();

    this.#updateInputField(event.dataTransfer.files[0]);
  }
}

ये सभी विधियाँ इन क्रियाओं के लागू होने पर डिफ़ॉल्ट घटना को रोकती हैं। ड्रॉप() फ़ंक्शन निजी फ़ंक्शन को भी कॉल करता है। #updateInputField()। चलिए इसे जोड़ते हैं।

export default class extends Controller {
  // …

  // private
  #updateInputField(file) {
    const dataTransfer = new DataTransfer();

    dataTransfer.items.add(file);

    this.inputTarget.files = dataTransfer.files;
  }
  // …
}

यह गिराई गई छवि को inputTarget फ़ील्ड में इंजेक्ट करेगा। और ठीक इसी तरह आप छवियों को तत्व पर खींच और छोड़ सकते हैं। ?

आउटलेट्स के साथ छवियों का पूर्वावलोकन करें

हालांकि एक महत्वपूर्ण हिस्सा गायब है... छवि दिखाई नहीं दे रही है जो एक बग की तरह दिखती है। सौभाग्य से image_preview_controller.js पहले ही हो चुका है। यह एक सरल व्यायाम है।

सबसे पहले निम्नलिखित विशेषताओं को जोड़कर HTML में बदलाव करें:


जोड़ा गया:

  • data-dropzone-image-preview-outlet='#image-preview';
  • आईडी = "छवि-पूर्वावलोकन"।

अब dropzone_controller.js में दो पंक्तियों की आवश्यकता है।

export default class extends Controller {
  static outlets = ["image-preview"];
  // …

  drop(event) {
    // …

    this.imagePreviewOutlet.show();

    // …
  }

  // …
}

अब जब आप कोई छवि छोड़ते हैं तो यह image_preview_controller.js पर शो() फ़ंक्शन को सक्रिय करता है। ?

मैं इन जैसे छोटे स्टिमुलस नियंत्रकों का उपयोग करना पसंद करता हूं जो एक साथ बहुत अच्छा काम करते हैं।


रेल्स डिज़ाइनर के पास यह स्टिमुलस कंट्रोलर कुछ अतिरिक्त सुविधाओं के साथ पैक किया गया है। अपनी प्रति आज ही प्राप्त करें।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/railsdesigner/drag-drop-images-with-preview-using-stimulus-outlets-4k9h?1 यदि कोई उल्लंघन है, तो कृपया हटाने के लिए स्टडी_गोलंग@163.com से संपर्क करें। यह
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3