2017-01-13 13 views
12

उपयोग-केस: एक ग्राहक एक पुस्तकालय है कि कोणीय 2 घटकों से मिलकर निर्माण करने के लिए चाहता है, लेकिन है कि पुस्तकालय के अंत उपयोगकर्ता (डेवलपर) को पृथक, प्रौद्योगिकी नास्तिक इंटरफेस को उजागर करता है, ताकि उन उपयोगकर्ताओं हो सकता है सादा जावास्क्रिप्ट का उपयोग करना और पुस्तकालय के आंतरिक के बारे में पता नहीं है।एक सादा जावास्क्रिप्ट पेज पर विभिन्न डोम नोड्स पर कोणीय 2 घटकों को इंजेक्ट कैसे करें?

कठिनाई निम्नलिखित से आता है:

  1. एक पेज है, जो सादे जावास्क्रिप्ट का उपयोग करता है। यह पृष्ठ तीसरे पक्ष द्वारा विकसित किया गया है।
  2. तृतीय पक्ष पृष्ठ पर विशिष्ट स्थानों (डीओएम नोड्स) पर दिए गए कोणीय 2 घटक को सम्मिलित करने में सक्षम होना चाहिए।
  3. मान लें कि घटक <mg-input> है और इसे सादा जावास्क्रिप्ट पेज के शीर्षलेख में दिखाया जाना चाहिए, लेकिन न केवल पृष्ठ पर एक फॉर्म में भी। दो अलग-अलग स्थानों, दो अलग-अलग डोम नोड्स जिनमें उनके बीच सादा HTML है।

सवाल: कैसे हम विशिष्ट डोम नोड पर घटक bootstrap और हम विन्यास (पुरातन नहीं लेकिन एक जटिल वस्तु) उन घटकों के लिए कैसे पारित करते हैं?

React दुनिया में यह बस ReactDom.render(domEl, <CustomInput nonPrimitiveConfig={config}/>) चल रहा है और क्या domEl и config है पर निर्भर करता है द्वारा किया जाता है, घटक अलग config के साथ विभिन्न स्थानों में रेंडर किया जाएगा।

कोणीय 2 में यह कैसे करें?

+2

प्रश्न [कई] (http://stackoverflow.com/q/41783547/1153681) [बार] (http://stackoverflow.com/q/41804873/1153681) SO पर पॉप अप हो गया है। दिलचस्प बात यह है कि हर बार एक बहुत अलग शब्द के तहत। यह एक गैर-कोणीय वातावरण में स्टैंडअलोन कोणीय "विजेट" का उपयोग करना चाहता है (यह एक स्थिर HTML पृष्ठ हो, सादा जावास्क्रिप्ट में उत्पन्न एक पृष्ठ ...)। स्वीकार्य उत्तर यह प्रतीत होता है कि यह असंभव है (जब तक कि आप प्रति विजेट एक पूर्ण कोणीय ऐप चलाने के इच्छुक नहीं हैं)। कोणीय के रूप में यह पूरे पृष्ठ या इसके एक बड़े हिस्से को नियंत्रित करने के लिए डिज़ाइन किया गया है, लेकिन बिट्स फैलाने का एक गुच्छा नहीं है। – AngularChef

+0

@ पूर्ण कोणीय ऐप द्वारा एंजुलरफ्रेंस, क्या आपका मतलब 'एनजी मॉड्यूल' या कुछ और है? – antitoxic

+1

"पूर्ण कोणीय ऐप" से, मेरा मतलब है कि आप जिस प्लेटफॉर्म को बूटस्ट्रैप 'प्लेटफॉर्मब्रोसर डायनामिक() बूटस्ट्रैप मॉड्यूल() 'के साथ बूट करते हैं। (एक ऐप NgModules का संग्रह है।) – AngularChef

उत्तर

0

शायद पूछें कि वे कोणीय 2 घटक विशेष रूप से क्यों चाहते हैं?

हमने एक स्टैंडअलोन "विजेट" कोड किया है जिसमें जावास्क्रिप्ट एपीआई, यूआई और स्टाइल शामिल है। ऐप के डेवलपर इसे ट्रिगर करने के लिए जावास्क्रिप्ट फ़ंक्शन कहते हैं।

सभी देवताओं की आवश्यकता शून्य लाइब्रेरी निर्भरताओं के साथ पैक की जाती है।

आपका विकल्प यूआई से कम घटकों को विकसित करना है (उदा। बंद/एसईएफ)। क्लाइंट ऐप तब यूआई के लिए जो भी तकनीक चाहता है उसका उपयोग कर सकता है।

+0

यह एक विकल्प नहीं है। ग्राहक के साथ पहले से ही चर्चा की जा चुकी है। यह सवाल का जवाब भी नहीं देता है। – antitoxic

0

अंगुलर के साथ यह संभव नहीं है Custom Elements जोड़ा गया है (जिसे Q4 2017 घोषित किया गया था लेकिन github repo किसी कारण से संग्रहीत किया गया है, इसलिए मुझे यकीन नहीं है कि सीई विकसित होना जारी रहेगा)।

आप अपने घटकों को बनाने के लिए Stencil का उपयोग कर सकते हैं। अंगुलर में घटकों को बनाने के तरीके के लिए वे बहुत समान हैं (टाइपस्क्रिप्ट का उपयोग करें) - ऐसे घटकों को फिर कोणीय (कुछ बुनियादी विन्यास के साथ) या किसी अन्य ढांचे के साथ या यहां तक ​​कि केवल एक सादे वेनिला एचटीएमएल/जेएस सेटअप में लोड किया जा सकता है।

उदाहरण के लिए, here एक मूल स्टैंसिल घटक है।

कोणीय के लिए बड़ा अंतर यह है कि कोई अलग टेम्पलेट HTML फ़ाइल नहीं है, बल्कि इसके बजाय यह टेम्पलेट प्रस्तुत करने के लिए जेएसएक्स का उपयोग करता है।

तृतीय पक्ष इन घटकों को एक विशिष्ट स्थान पर सम्मिलित करने में सक्षम होगा।

आपके डेवलपर अंगुलर में होने के लिए आपको जो भी उद्देश्य चाहिए, उसके लिए घटक एक कोणीय परियोजना में घटक जोड़ सकते हैं।

संबंधित मुद्दे