AngularJS: टेम्प्लेट के अंदर एक चर कैसे सेट करें?


89

मैं {{f = ...}}तीसरी पंक्ति में दिए गए विवरण को कैसे प्रिंट कर सकता हूं forecast[day.iso]?

मैं forecast[day.iso].temperatureहर पुनरावृत्ति के लिए उपयोग करने से बचना चाहता हूं ।

<div ng-repeat="day in forecast_days">
  {{$index}} - {{day.iso}} - {{day.name}}
  {{f = forecast[day.iso]}}
  Temperature: {{f.temperature}}<br>
  Humidity: {{f.humidity}}<br>
  ...
</div>

3
यह एक उत्तर नहीं हो सकता है, लेकिन उपयोगी टिप {{f = पूर्वानुमान [day.iso]; ""} का उपयोग करना है क्योंकि यह दृश्य पर कुछ भी प्रिंट नहीं करेगा।
मैट लियोनोविच

जवाबों:


188

NgInit का उपयोग करें : https://docs.angularjs.org/api/ng/directive/ngInit

<div ng-repeat="day in forecast_days" ng-init="f = forecast[day.iso]">
  {{$index}} - {{day.iso}} - {{day.name}}
  Temperature: {{f.temperature}}<br>
  Humidity: {{f.humidity}}<br>
  ...
</div>

उदाहरण: http://jsfiddle.net/coma/UV4qF/


31
यदि आप अधिक चाहते हैं, तो एक चर उन्हें अर्धविराम के साथ अलग कर देगा ';'
बेंटज़ी

असिंचित के लिए युक्ति ... आपके टेम्प्लेट की संरचना के आधार पर, आप अपने चर के अंतिम मूल्य को दर्शाने वाले सभी रिकॉर्ड के साथ समाप्त हो सकते हैं (मेरे मामले में, कोणीय ने बाद के पाचन चक्र पर प्रतिस्थापन को अद्यतन किया, क्योंकि वे सभी बाध्य हैं वही अभिव्यक्ति)! इस स्थिति से निपटने के लिए, आप चर को चालू रिकॉर्ड के गुण के रूप में असाइन कर सकते हैं (यदि आपके उपयोग के मामले के लिए व्यावहारिक है)। उपरोक्त उदाहरण में, यह बन जाएगाng-init="day.f = forecast[day.iso]"
जॉन रिक्स

35

यह सबसे अच्छा जवाब नहीं है , लेकिन इसका एक विकल्प भी है: चूंकि आप कई अभिव्यक्तियों को संक्षिप्त कर सकते हैं, लेकिन सिर्फ अंतिम एक का प्रतिपादन किया गया है, आप अपनी अभिव्यक्ति को समाप्त कर सकते हैं ""और आपका चर छिप जाएगा।

तो, आप के साथ चर को परिभाषित कर सकते हैं:

{{f = forecast[day.iso]; ""}}

क्या यह एक प्रलेखित विशेषता है?
डैनियल एफ

@DanielF, मुझे नहीं मिला। मैंने सिर्फ इस टिप्पणी को देखा , विचार का परीक्षण किया, इसे पसंद किया और उत्तर के रूप में जोड़ने का फैसला किया क्योंकि इसकी दृश्यता अधिक है और इसे खोना कठिन है।
ज़ानोन

@ डैनियलएफ, बस यह उच्च मतदान जवाब मिला जो एक ही समाधान का प्रस्ताव करता है। यह भी एक डॉक्टर लिंक के बिना है।
ज़ानोन

@DanielF, मैंने अपना उत्तर अपडेट कर दिया है। मुझे इसे बेहतर समझने के लिए एक सवाल पूछना था । यह कोई विशेष विशेषता नहीं है। बस समवर्ती अभिव्यक्तियों का व्यवहार।
ज़नोन

8
यह हैक विशेष रूप से तब उपयोगी होता है जब आप चाहते हैं कि अभिव्यक्ति एक बार इनिट पर चलने के बजाए स्कोप परिवर्तन के लिए बाध्य हो।
रॉनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.