एनजी-ऐप और डेटा-एनजी-ऐप के बीच अंतर क्या है?


147

मैंने एंगुलरजेएस के बारे में सीखना शुरू कर दिया है और इस बारे में भ्रमित हूं कि अंतर ng-appऔर data-ng-appनिर्देशों के बीच क्या अंतर हैं ।



8
@chenrui - यह Q पहले btw आया था। (२४ अप्रैल २६ मई १६)
ब्लंडरिंग फिलोसोफर

1
आपका एप्लिकेशन प्रभावित होने वाला नहीं है और यदि आप ng-app या data-ng-app का उपयोग करते हैं, तो भी Angular अपेक्षा के अनुरूप काम करेगा, लेकिन जैसा कि @ user2289659 ने डेटा का उपयोग करते हुए उल्लेख किया है- * HTML5 के बाद से कस्टम विशेषता मानक पेश किया गया है
Shuathath Khan

जवाबों:


125

इनमें से अधिकांश उत्तर बस यह कह रहे हैं कि टेम्पलेट वैध HTML , या HTML मान्यकर्ता अनुरूप बनाता है , बिना यह बताए कि इन शब्दों का क्या अर्थ है।

मुझे निश्चित रूप से पता नहीं है, लेकिन मैं अनुमान लगा रहा हूं कि ये शर्तें HTML सत्यापन कार्यक्रमों पर लागू होती हैं जो मानकों के अनुपालन के लिए आपके कोड को स्कैन करती हैं - एक तरह का संकेत। वे ng-appएक मान्य विशेषता के रूप में नहीं पहचानते हैं । वे अपेक्षा करते हैं कि गैर डिफ़ॉल्ट HTML विशेषताओं के साथ पूर्वनिर्धारित किया जाए

data-attribute_name_here

इसलिए, रचनाकारों ने AngularJSअपने निर्देशों के लिए वैकल्पिक नाम बनाए हैं जो उनके data-सामने शामिल हैं ताकि एचटीएमएल सत्यापनकर्ता कार्यक्रम "उन्हें पसंद करें"।


4
+1 के लिए "ठीक है। तो, 'सत्यापनकर्ता' का क्या मतलब है, वैसे भी?" दृष्टिकोण। यदि आपने शोध किया होता तो आपको पता चलता कि आप ज्यादातर सही अनुमान लगा रहे हैं। =)
slacktracer

22
मान्य HTML HTML सत्यापनकर्ताओं के लिए नहीं है। ब्राउज़र HTML को पार्स करते हैं। यदि आप HTML विनिर्देशन से भटकना शुरू करते हैं, तो इस बात की कोई गारंटी नहीं है कि आपका HTML सही ढंग से पार्स किया जाएगा।
ब्लेंडर

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

2
@ ब्लेंडर "इसकी कोई गारंटी नहीं है कि आपका HTML सही ढंग से पार्स किया जाएगा", वैध HTML के लिए भी यही कहा जा सकता है।
बजे

1
@ चक मैं सुझाव नहीं दे रहा हूं कि आप इसे एक या दूसरे तरीके से कर सकते हैं, बस यह मुद्दा विशेष रूप से महत्वपूर्ण नहीं है। जब हम उस पर होते हैं, तब हम टैब के रूप में अच्छी तरह से बहस कर सकते हैं। haha
twiz

41

रनटाइम व्यवहार के संदर्भ में कोई नहीं, वे निर्देशन के नामकरण की अलग-अलग शैली हैं जैसा कि यहाँ वर्णित है: http://docs.angularjs.org/guide/directive

निर्देश में ऊँट के नाम वाले नाम हैं जैसे कि ngBind। इन विशेष पात्रों के साथ ऊंट मामले के नाम को सांप के मामले में अनुवाद करके निर्देश प्राप्त किया जा सकता है:, -, या _। वैकल्पिक रूप से निर्देश को x- या डेटा के साथ उपसर्ग किया जा सकता है - इसे HTML सत्यापनकर्ता के अनुरूप बनाने के लिए। यहाँ कुछ संभावित निर्देशों के नामों की एक सूची दी गई है: एनजी: बाइंड, एनजी-बाइंड, एनजी_बिंद, एक्स-एनजी-बाइंड और डेटा-एनजी-बाइंड।

जैसा कि आप इसे पढ़ने से देख सकते हैं data-इसका उपयोग आपके HTML पास HTML सत्यापनकर्ता परीक्षण / बनाने के लिए किया जा सकता है


2
HTML के विनिर्देशन में इसके लिए अनुमति कहाँ है?
user1876508


6

आप कोणीय नाम स्थान की घोषणा कर सकते हैं <html xmlns:ng="http://angularjs.org" ng-app>


2
यह केवल लीगेसी ऐप्स के लिए लागू होता प्रतीत होता है: "यदि आप पुरानी शैली के निर्देशन सिंटैक्स एनजी का उपयोग करना चुनते हैं: तो IE को खुश करने के लिए html में xml-namespace शामिल करें। (यह ऐतिहासिक कारणों से यहां है, और हम अब उपयोग की अनुशंसा नहीं करते हैं।" एनजी :.) "। स्रोत: docs.angularjs.org/guide/bootstrap
चक ले बट

5

आधुनिक ब्राउज़रों में कोई अंतर नहीं है, लेकिन पुराने IE में, वे तब तक काम नहीं करेंगे जब तक कि आप XML नेमस्पेस को परिभाषित करने की घोषणा नहीं करते।

इसमें एक मान्यता अंतर भी है जो ng-appमान्य XHTML नहीं है, और इससे आपका वेबपृष्ठ HTML मान्यताओं को विफल कर देगा। कोणीय आपको इसके निर्देशों के साथ उपसर्ग करने data-या x-इसे मान्य करने की अनुमति देने की अनुमति देता है।


यह केवल तभी सत्य प्रतीत होता है यदि आप "एनजी:" का उपयोग कर रहे हैं। मेरा मानना ​​है कि "डेटा-एनजी-" को मान्य होना चाहिए।
चक ले बट

4

यदि आप अपना पृष्ठ HTML वैध बनाना चाहते हैं, तो आप ng के बजाय, डेटा- ng- का उपयोग कर सकते हैं।
यह एक त्रुटि फेंक देगा

<div ng-app="">

  <p>Input something in the input box:</p>
  <p>Name: <input type="text" ng-model="name"></p>
  <p ng-bind="name"></p>

</div>

इससे कोई त्रुटि नहीं होगी

<div data-ng-app="scope" data-ng-init="name='test'">

  <p>Input something in the input box:</p>
  <p>Name: <input type="text" data-ng-model="name"></p>
  <p data-ng-bind="name"></p>

</div>

क्या आप बता सकते हैं कि पहले परिदृश्य में त्रुटि क्यों होगी?
अवनि २

यह w3c सत्यापन को संदर्भित कर रहा है।
ग्राहम पी हीथ

3

इन दो शब्दों के बीच बुनियादी अंतर यह है कि डेटा-एनजी-ऐप HTML को मान्य करता है जबकि बाद में नहीं। समयबद्धता समान रहती है। अधिक संदर्भ के लिए आप w3Validator आज़मा सकते हैं।


-2

बिल्कुल, दोनों के बीच कोई अंतर नहीं है, सिवाय इसके कि कुछ एचटीएमएल 5 सत्यापनकर्ता एनजी-ऐप जैसी संपत्ति पर एक त्रुटि फेंक देंगे, लेकिन वे डेटा के साथ उपसर्ग के लिए कुछ भी त्रुटि नहीं फेंकते हैं, जैसे डेटा-एनजी ऐप। इसलिए डेटा का उपयोग करना- हमारे कोणीय निर्देशों के साथ उपसर्ग अच्छा है।

यहां तक ​​कि आप नीचे दिए गए तरीकों से उपयोग कोणीय निर्देश कर सकते हैं एनजी-बिंद, एनजी: बाइंड, एनजी_बाइंड, डाटा-एनजी-बाइंड, एक्स-एनजी-बाइंड

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