angularjs - AngularJS: एनजी शामिल बनाम निर्देश




1 Answers

यह सब आपके कोड खंड से आप जो चाहते हैं उस पर निर्भर करता है। व्यक्तिगत रूप से, यदि कोड में कोई तर्क नहीं है, या नियंत्रक की भी आवश्यकता नहीं है, तो मैं ngInclude । मैं आम तौर पर बड़े "स्थिर" एचटीएमएल टुकड़े डालता हूं जो मैं यहां दृश्य को अपनाना नहीं चाहता हूं। (यानी: आइए एक बड़ी तालिका कहें जो आंकड़े माता-पिता नियंत्रक से आता है। वैसे भी यह स्पष्ट है कि <div ng-include="bigtable.html" /> उन सभी पंक्तियों की तुलना में दृश्य को अपनाना है)

यदि तर्क है, डीओएम हेरफेर, या आपको इसे अलग-अलग उदाहरणों में अनुकूलन योग्य (उर्फ अलग-अलग प्रस्तुत करने की आवश्यकता है) तो directives बेहतर विकल्प हैं (वे पहले चुनौतीपूर्ण हैं, लेकिन वे बहुत शक्तिशाली हैं, इसे समय दें )।

ngInclude

कभी-कभी आप ngInclude's देखेंगे जो उनके बाहरी $scope / interface प्रभावित होते हैं। जैसे कि एक बड़े / जटिल पुनरावर्तक कहते हैं। इस वजह से इन 2 इंटरफेस एक साथ बंधे हैं। यदि मुख्य $scope में कुछ बदलता है, तो आपको अपने तर्क को अपने आंशिक आंशिक रूप से बदलना / बदलना होगा।

निर्देशों

दूसरी तरफ, निर्देशों में स्पष्ट स्कॉप्स / कंट्रोलर / इत्यादि हो सकते हैं। इसलिए यदि आप ऐसे परिदृश्य के बारे में सोच रहे हैं जहां आपको कई बार पुन: उपयोग करना होगा, तो आप देख सकते हैं कि अपने स्वयं के दायरे से जुड़े रहने से जीवन आसान और कम हो जाएगा भ्रामक।

साथ ही, जब भी आप डोम के साथ बातचीत कर रहे हैं, तो आपको निर्देश का उपयोग करना चाहिए। यह परीक्षण के लिए बेहतर बनाता है, और इन क्रियाओं को नियंत्रक / सेवा / आदि से दूर कर देता है, जो आप चाहते हैं!

युक्ति: सुनिश्चित करें कि प्रतिबंध का उपयोग करें: 'ई' यदि आप IE8 की परवाह करते हैं! इसके आसपास के तरीके हैं, लेकिन वे कष्टप्रद हैं। बस जीवन को आसान बनाएं और विशेषता / आदि के साथ चिपके रहें। <div my-directive />

घटक [अद्यतन 3/1/2016]

कोणीय 1.5 में जोड़ा गया, यह अनिवार्य रूप से एक .directve() । घटक का अधिकांश समय इस्तेमाल किया जाना चाहिए। यह restrict: 'E', scope : {}, bindToController: true बॉयलरप्लेट निर्देश कोड को हटा देता है, जैसे कि restrict: 'E', scope : {}, bindToController: true । Angular2 में अधिक आसानी से संक्रमण करने में सक्षम होने के लिए, मैं आपके ऐप में लगभग हर चीज़ के लिए इनका उपयोग करने की अत्यधिक अनुशंसा करता हूं।

निष्कर्ष के तौर पर:

आपको अधिकांश समय घटक और निर्देश बनाना चाहिए।

  • अधिक विस्तार योग्य
  • आप टेम्पलेट कर सकते हैं और अपनी फाइल बाहरी रूप से कर सकते हैं (जैसे ngInclude)
  • आप माता-पिता के दायरे का उपयोग करना चुन सकते हैं, या निर्देश के भीतर यह स्वयं का अलग-अलग दायरा चुन सकते हैं।
  • अपने आवेदन के दौरान बेहतर पुन: उपयोग करें

अद्यतन 3/1/2016

अब जब कोणीय 2 धीरे-धीरे लपेट रहा है, और हम सामान्य प्रारूप को जानते हैं (निश्चित रूप से यहां और वहां कुछ बदलाव भी होंगे) बस जोड़ना चाहते थे कि components को करना कितना महत्वपूर्ण है (कभी-कभी निर्देश यदि आपको प्रतिबंधित होने की आवश्यकता होती है: उदाहरण के लिए 'ई')।

घटक कोणीय 2 के @Component के @Component । इस तरह हम एक ही क्षेत्र में तर्क और एचटीएमएल encapsulating कर रहे हैं।

सुनिश्चित करें कि आप घटकों में जितनी चीजें कर सकते हैं उतनी चीजें encapsulate, यह कोणीय 2 में संक्रमण को इतना आसान बना देगा! (यदि आप संक्रमण करना चुनते हैं)

directives का उपयोग करके इस माइग्रेशन प्रक्रिया का वर्णन करने वाला एक अच्छा आलेख यहां दिया गया है (यदि आप पाठ्यक्रम के घटकों का उपयोग करने जा रहे थे तो बहुत समान): http://angular-tips.com/blog/2015/09/migrating-directives-to-angular-2/

मैं समझ नहीं पा रहा हूं कि निर्देश का उपयोग कब करें और जब यह nginclude का उपयोग करने के लिए अधिक उपयुक्त होगा। इस उदाहरण को लें: मेरे पास आंशिक, password-and-confirm-input-fields.html , जो कि पासवर्ड दर्ज करने और पुष्टि करने के लिए HTML है। मैं साइन-पेज के तहत और परिवर्तन-पासवर्ड-पेज के तहत इसका उपयोग करता हूं। उन दो पृष्ठों में प्रत्येक नियंत्रक होता है, आंशिक एचटीएमएल में कोई समर्पित नियंत्रक नहीं होता है।

क्या मुझे इसके लिए निर्देश या ngInclude करना चाहिए?




Related