कोणीय आलसी भावों के लिए एक बार का बंधन


93

AngularJS में 1.3.0-beta.10 संस्करण के बाद से एक नई सुविधा है: "आलसी वन-टाइम बाइंडिंग"

सरल अभिव्यक्तियों के साथ उपसर्ग किया जा सकता है ::, यह बताकर कि पहले अभिव्यक्ति का मूल्यांकन करने के बाद कोणीय देखना बंद कर दिया गया था। दिया गया आम उदाहरण कुछ इस प्रकार है:

<div>{{::user.name}}</div>

निम्नलिखित लोगों की तरह अभिव्यक्तियों के लिए एक समान वाक्यविन्यास है?

<div ng-if="user.isSomething && user.isSomethingElse"></div>
<div ng-class="{classNameFoo: user.isSomething}"></div>

विस्तृत विवरण के लिए कोणीय डॉक्स देखें: docs.angularjs.org/guide/expression#one-time-binding
अक्षय गुंडेवार

जवाबों:


160

हाँ। आप प्रत्येक भाव के साथ ::, यहाँ तक कि ngIfया में भी उपसर्ग कर सकते हैं ngClass:

<div ng-if="::(user.isSomething && user.isSomethingElse)"></div>
<div ng-class="::{classNameFoo: user.isSomething}"></div>

दरअसल, कोड केवल यह जांचता है कि अभिव्यक्ति में दो पहले अक्षर :एक बार के बंधन को सक्रिय करने के लिए हैं (और फिर उन्हें हटा देता है, इस प्रकार कोष्ठक की भी आवश्यकता नहीं होती है)। बाकी सब कुछ वैसा ही रहता है।


3
यह मेरे सवाल का जवाब देता है, हालांकि कुछ नई सुविधाएँ अच्छी तरह से काम नहीं करती हैं: <div ng-if="::user.isSomething"></div>और <div ng-if="::(!user.isSomething)"></div>दोनों ही प्रस्तुत करते हैं। यह "::" के बिना काम करता है।

@seldary मैं समस्या को पुन: उत्पन्न नहीं कर सकता। हर भाव ::मेरे लिए अच्छी तरह से काम करता है, जैसा कि मेरे संपादन में समझाया गया है। यदि आप संदेह में हैं, तो क्या आप एक बेला बना सकते हैं?
ब्लैकहोल

7
सबसे पहले यह मेरे लिए भी काम नहीं करने के लिए प्रकट हुआ, एनक्लाकस के साथ जिसमें कई वर्ग परिभाषित थे। मुझे जल्दी से पता चला कि बाइंडिंग अभी भी बाध्य थी क्योंकि एनजीक्लास में इस्तेमाल किए गए कुछ देखे गए चर अभी तक परिभाषित नहीं किए गए थे (और हम जानते हैं कि कोणीय मूल्य जारी करने से पहले पहले परिभाषित होने के लिए इंतजार करेंगे। यहाँ इस व्यवहार को प्रदर्शित करने के लिए एक छोटी सी पहेली है jsfiddle.net/2LkyLoop
डेनिस पशेनोव

1
@MaxRocket bindonce सिंटैक्स कोणीय 1.3 में जोड़ा गया था। तो यह 1.2 या उससे कम में काम नहीं करेगा
बर्ट

2
एनजी-वन-टाइम बाइंडिंग-अगर काम नहीं करता है। चौकीदार की गिनती बहुत अधिक या इसके बिना होती है ::। यह एनजी-क्लास के लिए अच्छा काम करता है, लेकिन एनजी-अगर मुझे (1.5.6) के लिए एक बार के बंधन का पालन नहीं करता है। ध्यान दें कि मैं एक तरह से एक वस्तु संपत्ति को बांधने की कोशिश कर रहा हूं जो एनजी-रिपीट से आया है। यकीन नहीं होता कि फर्क पड़ता है।
अगमलाउनर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.