AngularJS
स्व या यह चर एक नियंत्रक में
खोज…
परिचय
यह एक सामान्य पैटर्न की व्याख्या है और आमतौर पर सबसे अच्छा अभ्यास माना जाता है जिसे आप AngularJS कोड में देख सकते हैं।
आत्म चर के उद्देश्य को समझना
"नियंत्रक के रूप में सिंटैक्स" का उपयोग करते समय आप अपने नियंत्रक को एनजी-नियंत्रक निर्देश का उपयोग करते समय HTML में एक उपनाम देंगे।
<div ng-controller="MainCtrl as main">
</div>
फिर आप मुख्य चर से गुणों और विधियों तक पहुंच सकते हैं जो हमारे नियंत्रक उदाहरण का प्रतिनिधित्व करता है। उदाहरण के लिए, चलिए अपने कंट्रोलर की ग्रीटिंग प्रॉपर्टी को एक्सेस करते हैं और उसे स्क्रीन पर प्रदर्शित करते हैं:
<div ng-controller="MainCtrl as main">
{{ main.greeting }}
</div>
अब, हमारे नियंत्रक में, हमें अपने नियंत्रक उदाहरण की ग्रीटिंग संपत्ति के लिए एक मूल्य निर्धारित करने की आवश्यकता है ($ गुंजाइश या कुछ और के विपरीत):
angular
.module('ngNjOrg')
.controller('ForgotPasswordController',function ($log) {
var self = this;
self.greeting = "Hello World";
})
आदेश एचटीएमएल प्रदर्शन सही ढंग से रखने के लिए हम अपने नियंत्रक शरीर के इस अंदर ग्रीटिंग गुण सेट की जरूरत है। मैं स्वयं नामक एक मध्यवर्ती चर बना रहा हूं जो इस बात का संदर्भ देता है। क्यों? इस कोड पर विचार करें:
angular
.module('ngNjOrg')
.controller('ForgotPasswordController',function ($log) {
var self = this;
self.greeting = "Hello World";
function itsLate () {
this.greeting = "Goodnight";
}
})
इस उपरोक्त कोड में आप जब विधि itsLate कहा जाता है अद्यतन करने के लिए स्क्रीन पर पाठ अपेक्षा कर सकते हैं, लेकिन वास्तव में ऐसा नहीं है। जावास्क्रिप्ट फंक्शन लेवल स्कूपिंग नियमों का उपयोग करता है, इसलिए इसके अंदर "यह" विधि बॉडी के बाहर "यह" कुछ अलग दर्शाता है। हालाँकि, यदि हम स्वयं चर का उपयोग करते हैं, तो हम वांछित परिणाम प्राप्त कर सकते हैं:
angular
.module('ngNjOrg')
.controller('ForgotPasswordController',function ($log) {
var self = this;
self.greeting = "Hello World";
function itsLate () {
self.greeting = "Goodnight";
}
})
यह आपके नियंत्रकों में "स्व" चर का उपयोग करने की सुंदरता है- आप इसे अपने नियंत्रक में कहीं भी एक्सेस कर सकते हैं और हमेशा सुनिश्चित कर सकते हैं कि यह आपके नियंत्रक उदाहरण को संदर्भित कर रहा है।