2016-02-11 8 views
11

कोणीय प्रलेखन से लिया में:दोहरे कोष्ठकों जब उपयोग करने के लिए {{}} AngularJS

Angular Expressions
कोणीय भाव जावास्क्रिप्ट की तरह कोड के टुकड़े कि मुख्य रूप से हैं प्रक्षेप बाइंडिंग में रखा है जैसे

इस तरहके रूप में
<span title="{{ attrBinding> }}">{{ textBinding }}</span> 

लेकिन यह भी निर्देश में सीधे इस्तेमाल किया गुण।

उदाहरण के लिए, इन कोणीय में मान्य अभिव्यक्ति कर रहे हैं:

1 + 2 ए + बी user.name आइटम [सूचकांक]

हालांकि मैं एक छोटे से जब उपयोग करने के लिए के रूप में उलझन में हूँ डबल ब्रेसिज़ सिंटैक्स {{}} और जब नहीं। प्रलेखन का सुझाव है कि निर्देशक विशेषताओं के भीतर अभिव्यक्तियों का उपयोग करते समय आपको उनकी आवश्यकता नहीं है (उपरोक्त एनजी-क्लिक उदाहरण देखें)।

हालांकि निम्नलिखित कोड है जो काम करता है विपरीत करने के लिए वास्तविक सबूत प्रदान करता है:

<ul id="Menu"> 
     <li ng-repeat="appModule in applicationModules" id="{{appModule.Name}}" ng-class="{ 'selected' : selectedAppModule == '{{appModule.Name}}' }" ng-click="menuClicked(appModule.Name)"> 
      <a href="#Content/{{appModule.Name}}">{{appModule.Display}}</a> 
     </li> 
    </ul> 

नोट कैसे एनजी स्तरीय निर्देश में दोहरे कोष्ठकों उपयोग किया जाता है और एनजी क्लिक निर्देश के अंदर वे नहीं हैं।

आप कैसे जानते हैं कि उनका उपयोग कब करें और कब नहीं?

+1

जब आप इसे मूल्य प्राप्त करना चाहते हैं तो आप ब्रेसिज़ का उपयोग करते हैं, और जब आप इसे एक चर – MayK

उत्तर

9

यह प्रश्न में निर्देश विशेषता और बाध्यकारी प्रकार के उपयोग पर निर्भर करता है। और भी यह इस बात पर निर्भर करता है कि आप दी गई स्थिति में क्या चाहते हैं।

अपने उदाहरण से:

ng-repeat="appModule in applicationModules" 

ब्रेसिज़ के लिए कोई ज़रूरत नहीं के रूप में इस अभिव्यक्ति एनजी-दोहराने के निर्देश अंदर कोणीय द्वारा मूल्यांकन किया जाता है।


id="{{appModule.Name}}" 

यहाँ हम ब्रेसिज़ की जरूरत के रूप में हम आईडी अभिव्यक्ति के मूल्य के बराबर होना चाहता हूँ।


ng-class="{ 'selected' : selectedAppModule == '{{appModule.Name}}' }" 

मैं बहुत यकीन है कि यह के रूप में लिखा जा सकता है कर रहा हूँ:

ng-class="{ 'selected' : selectedAppModule == appModule.Name }" 

और तुम एक ही व्यवहार मिलता है।


ng-click="menuClicked(appModule.Name)" 

इस उदाहरण में हम जरूरत विधि menuClicked नामित करने के लिए बाध्य होने के लिए एनजी-क्लिक करें।


आम तौर पर हम का उपयोग {{}} हम अभिव्यक्ति का मूल्यांकन करना चाहते हैं और जब विशेषताओं के साथ काम कर हम हमेशा उपयोग करने के लिए की जरूरत नहीं है जब {{}} के रूप में वे पर्दे के पीछे का मूल्यांकन किया कई मामलों में कर रहे हैं।

सरल युक्ति जब {{}} की आवश्यकता होती है तो अंगूठे का नियम .ToString() -method के लिए एक रैपर के रूप में सोचकर होता है। अभिव्यक्ति को स्ट्रिंग में कनवर्ट करना समझ में आता है, तो {{}} का उपयोग करता है। (किसी भी काउंटर उदाहरण बहुत स्वागत है)

+0

के रूप में उपयोग करना चाहते हैं तो आप ब्रेसिज़ का उपयोग नहीं करते हैं, जो आपके विस्तृत उत्तर के लिए धन्यवाद है, जो समझ में आता है। आप एनजी-क्लास के बारे में भी सही थे, यह शाब्दिक मूल्य के बजाय चर का उपयोग करके काम करता है। –

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