एनजी एप्लिकेशन निर्देश (HTML बनाम निकाय) का प्लेसमेंट


103

मैंने हाल ही में कोणीय के साथ निर्मित एक वेबप के लिए कोड की समीक्षा की और पाया कि यह टैग ng-app="myModule"पर रखे गए निर्देश के साथ लिखा गया था <body>। कोणीय सीखने के दौरान, मैंने केवल इसे <html>टैग पर उपयोग किया है , जैसा कि कोणीय डॉक्स द्वारा यहां , यहां और उनके ट्यूटोरियल में सुझाया गया है ।

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

जहाँ तक मैं बता सकता हूँ, ng-appपर <html>या के साथ एक app के बीच क्रम में कोई अंतर नहीं है <body>। जैसा कि मैं इसे समझता हूं, ng-appएक कोणीय अनुप्रयोग की जड़ को नामित करता है, इसलिए इस पर प्लेसमेंट को कोणीय के दायरे से बाहर कर <body>दिया जाएगा <head>, लेकिन मैं किसी भी प्रमुख तरीके के बारे में नहीं सोच सकता हूं जो चीजों को प्रभावित करेगा। तो मेरा सवाल यह है: ng-appइनमें से एक टैग को दूसरे के बजाय रखने के बीच तकनीकी अंतर क्या हैं ?

जवाबों:


144

कोई बड़ा अंतर नहीं है जहाँ आप डालते हैं ng-app

यदि आप इसे <body>लगाते हैं तो आपके पास AngularJS के लिए एक छोटा सा स्कोप है जो थोड़ा तेज है।

लेकिन मैंने हेरफेर करने ng-appके <html>लिए उपयोग किया है <title>


जवाब के लिए धन्यवाद! यह मूल रूप से निष्कर्ष है जो मैं आऊंगा, इसलिए यह सुनना अच्छा है कि अन्य लोग भी उसी तर्ज पर सोच रहे हैं। मैं वास्तव में दिलचस्पी रखता हूं कि यह क्यों तेज है और यह कितनी तेजी से हो सकता है, क्या आप यह समझाने में सक्षम हैं कि क्या आपके पास कोई संदर्भ है जो इस बात की व्याख्या कर सकता है?
मैटडविस

10
मैं वास्तव में थोड़ा तेज मतलब है । यह न्यूनतम है। बस छोटे दायरे का मतलब कम तत्व हैं जिसमें एंगुलरजेएस निर्देशों की तलाश करते हैं। यदि आपके पास ओपन ग्राफ़ के लिए मेटा तत्वों का एक टन है उदाहरण के लिए यह एक छोटा प्रभाव हो सकता है।
हरलान डोबरेव

12
शीर्षक। यही असली वजह है।
अहानिबेकाड

2
मैं सिर्फ शीर्षक बदलने के लिए सादे जावास्क्रिप्ट का उपयोग करूंगा।
सीन_ए 91

3
@ Sean_A91 यदि आपके पास हालांकि पूरा पृष्ठ AngularJS द्वारा चलाया जाता है, तो इसके लिए कोणीय का उपयोग करने के लिए अधिक समझ में आता है। यह अधिक सुसंगत है जो स्थिरता को बढ़ाता है और आप पेज बॉडी में भी शीर्षक मॉडल का पुन: उपयोग कर सकते हैं।
हरलान डोबरेव

21

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

हमें यह पता उस ऐप पर काम करते समय लगा, जो jqGrid और Dojo पर बहुत निर्भर था।

जब हमने एनजी-ऐप को हेड टैग में जोड़ा तो यह साइट को उड़ा दिया, लेकिन जब हमने एक रैपर का उपयोग किया तो हम बिना किसी समस्या के एंगुलर का उपयोग कर सकते थे।


14
यह एक अच्छा उदाहरण है जहां मैं Angular के लिए तीन उपयोग के मामलों में अंतर करता हूं: "सिंगल पेज ऐप", "स्टैंडअलोन" (यानी पृष्ठ पर ले जाता है लेकिन अन्य पृष्ठों के लिए सामान्य लिंक का उपयोग करता है), और "मिक्सिन" (यानी सिर्फ एक छोटा सा पर) पन्ना)। आपने वास्तव में मिक्सिन के उपयोग का वर्णन किया है और उस मामले में, पूरी तरह से सहमत एनजी-ऐप केवल उस डिव पर होना चाहिए जहां मिक्सिन लागू होता है। हालांकि, स्टैंडअलोन या एसपीए के उपयोग के लिए, मुझे लगता है कि यह <html> पर होना चाहिए।
fool4jesus

@ fool4jesus क्या आपको कोणीय के विभिन्न उपयोग विकल्पों के बारे में कोई लेख पता है? निश्चित रूप से अनुशंसित स्पा संस्करण के बारे में एक टन है, लेकिन हाल ही में मुझे jQuery-भारी कोडबेस में कोणीय को जोड़ना था और सोच रहा था कि इसे सफलता के साथ उपयोग करने और पागल न होने के लिए यहां सबसे अच्छा विकल्प क्या है।
सेंथे

यह एक मुश्किल एक @Senthe हो सकता है। जैसा कि आपने कोई संदेह नहीं पाया है, कोणीय अपने स्वयं के डोमिन के प्रभारी होने के लिए पसंद करता है। मुझे लगता है कि यह पृष्ठ के अतिव्यापी क्षेत्रों के बारे में कम है और उस क्षेत्र के नियंत्रण के बारे में अधिक है। यही है, आप अभी भी कोणीय क्षेत्रों में jquery का उपयोग कर सकते हैं, लेकिन कोणीय कोड से शुरू करें - जब पृष्ठ पहले से ही मौजूद हो तो आसान नहीं! दूसरे शब्दों में, यह jquery कॉल नहीं है जो कि जाना है, जितना कि <script> टैग के बीच के सामान को कोणीय निर्माणों में जाना पड़ता है - नियंत्रक और निर्देश। क्या इसका कोई मतलब है?
fool4jesus

4

AngularJS पहली एनजी ऐप को बूटस्ट्रैप करेगा जो इसे खोजता है! बस। यदि आपके पास एक से अधिक एनजी ऐप हैं, तो यह केवल पहले वाले को ही प्रोसेस करेगा। यदि आप किसी अन्य तत्व को बूटस्ट्रैप करना चाहते हैं, तो angular.bootstrap () का उपयोग करें

एनजी-ऐप विशेषता का मूल्य एक मॉड्यूल है जिसका उपयोग करके बनाया गया है:

angular.module("module_name", [])

एक मॉड्यूल परिभाषित करता है कि कैसे कोणीय बूट किया जाएगा क्योंकि हमारे पास अन्य प्रोग्रामिंग भाषाओं के विपरीत एक मुख्य () विधि नहीं है। यदि एनजी-ऐप का मूल्य खाली है, तो यह डिफ़ॉल्ट मॉड्यूल का उपयोग करने के लिए चूक करता है।

यह थोड़ा तेज कहा गया था क्योंकि कोणीय उस तत्व के अंदर सभी तत्वों को संसाधित करेगा जहां एनजी-ऐप था। लेकिन मुझे थोड़ा सा संदेह है क्योंकि अंतर शायद ही ध्यान देने योग्य होगा, जब तक कि आपके पास बहुत भारी डोम न हो।

यदि आप यहाँ उदाहरण चाहते हैं: http://noypi-linux.blogspot.com/2014/07/angularjs-tutorials-understanding.html

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.