कोणीय जेएस में डबल और सिंगल कर्ली ब्रेस के बीच अंतर?


192

मैं इस कोणीय दुनिया के लिए नया हूं, मैं डबल घुंघराले ब्रेसिज़ {{}} और सिंगल कर्ली ब्रेसेस {} का उपयोग करने में थोड़ा उलझन में हूं या कुछ समय के लिए कोई घुंघराले ब्रेस का उपयोग निर्देशों में शामिल करने के लिए किया जाता है।

  1. ng-class={expression}
  2. normal data binding like{{obj.key}}
  3. ng-hide='mydata==="red"'

जवाबों:


279

{{}} - डबल घुंघराले ब्रेसिज़:

{{}} जब आप HTML में सामान लिखना चाहते हैं तो कोणीय अभिव्यक्ति होती है और काफी काम आती है:

<div>
    {{planet.name == "Earth" ? "Yeah! We 're home!" : "Eh! Where 're we?"}}
</div>

<!-- with some directives like `ngSrc` -->
<img ng-src="http://www.example.com/gallery/{{hash}}"/>

<!-- set the title attribute -->
<div ng-attr-title="{{celebrity.name}}">...

<!-- set a custom attribute for your custom directive -->
<div custom-directive custom-attr="{{pizza.size}}"></div>

इनका उपयोग ऐसी जगह पर न करें जो पहले से ही एक अभिव्यक्ति है!

उदाहरण के लिए, निर्देश ngClickकुछ भी उद्धरणों के बीच में अभिव्यक्ति के रूप में लिखा जाता है:

<!-- so dont do this! -->
<!-- <button ng-click="activate({{item}})">... -->  

{} - सिंगल कर्ली ब्रेसेस:

{}जैसा कि हम जानते हैं कि जावास्क्रिप्ट में ऑब्जेक्ट्स के लिए स्टैंड है। यहाँ भी, कुछ भी अलग नहीं है:

<div ng-init="distanceWalked = {mon:2, tue:2.5, wed:0.8, thu:3, fri:1.5, 
sat:2, sun:3}">

कुछ निर्देशों जैसे कि ngClassया ngStyleमानचित्र स्वीकार करते हैं:

<span ng-style="{'color' : 'red'}">{{viruses.length}} viruses found!</span>

<div ng-class="{'green' : vegetable == 'lettuce', 
'red' : vegetable == 'tomato'}">..

कोई घुंघराले ब्रेसिज़ नहीं:

जैसा कि पहले ही उल्लेख किया गया है जब भावों के अंदर सिर्फ क्रूरता होती है। काफी सरल:

<div ng-if="zoo.enclosure.inmatesCount == 0">
    Alarm! All the monkeys have escaped!
</div>

 


2
हम एनजी- src संपत्ति में एनजी-शामिल निर्देश के साथ {{}} का उपयोग कर सकते हैं।
जय शुक्ला

5
टिप्पणियों में उल्लिखित किसी व्यक्ति की तरह, डबल ब्रेसेस {{}} को कोट्स के बीच एनजी-एसकेसी निर्देश में रखा जाना चाहिए। लेकिन एनजी- src ऐसा करने में सक्षम क्यों है? क्या विशेष प्रकार के निर्देशों के लिए एक नाम है जो उद्धरणों के अंदर {{}} लेता है?
अजय

क्या {{foo-bar}} और "{{foo-bar}}" में कोई अंतर है?
अन्डिस

5
मुझे इसे पूरी तरह से समझने के लिए इस पर थोड़ा और शोध करना था, लेकिन मुझे लगा कि इस ब्लॉग पोस्ट ने @ CodeHater के उत्तर के साथ वास्तव में मदद की, क्यों AngularJS कभी-कभी सिंगल ब्रेसेस {}, कभी डबल ब्रेसेस {{}} का उपयोग करता है, और कभी-कभी। कोई ब्रेसिज़ नहीं?
प्राणिकर

2

{{}} इसके बारे में एक और बात वॉचर के रूप में भी प्रयोग की जाती है .. कृपया बेहतर प्रदर्शन के लिए जितना संभव हो उतना बचें


3
क्या आपका मतलब {{}} प्रदर्शन में गिरावट है? क्या आप यह साबित करने के लिए कोई स्रोत प्रदान कर सकते हैं?
डॉन डी

1
क्या कोई इसकी पुष्टि कर सकता है?
गारफील्डकॉन

1

मुझे पता है कि यह एक पुरानी पोस्ट है और विषय से थोड़ा हटकर हो सकती है, लेकिन यह @DonD और @Gafrieldvlon के जवाब में है ...

ऐसा लगता है कि एक द्रष्टा वास्तव में रखा गया है यदि आप ng-bindनिर्देश का उपयोग करते हैं , तो उपयोग करते समय नहीं{{}} । ऐसा कहा जा रहा है, मेरा मानना ​​है कि ऊपर दिया गया @ जवाब अभी भी आंशिक रूप से सच है कि परहेज {{}} आमतौर पर प्रदर्शन के लिए बेहतर है, लेकिन बताए गए कारण के लिए नहीं।

एक अन्य पोस्ट का यह उत्तर इसे और अधिक विस्तार से बताता है।

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