यहाँ पंक्ति-दर-पंक्ति टूटने है:
$scope.checkout = function (cartObj) {
एक $ गुंजाइश चर नामित चेकआउट बनाया जा रहा है एक समारोह का संदर्भ जो ताकि आप इसे ध्यान में रखते हुए checkout()
के रूप में (उदाहरण के लिए एक बटन से कॉल कर सकते हैं एनजी-क्लिक = "चेकआउट" के साथ)।
यह फ़ंक्शन सेवा को कार्टऑबज कहा जाता है।
var modalInstance = $modal.open({
एक चर modalInstance कहा जाता है $ मोडल सेवा खुला विधि कॉल करने के लिए किया जाता है।
यूआई बूटस्ट्रैप $ मोडल सेवा एक मोडल उदाहरण देता है।
templateUrl : 'assets/menu/directives/payment-processing-modal.tmpl.html',
यह कहना है कि मोडल उदाहरण संबंधित URL पर मिलने वाली टेम्पलेट का उपयोग करना चाहिए: खुले विधि एक वस्तु है कि मोडल उदाहरण विन्यास को परिभाषित करता है इस प्रकार पारित कर दिया है।
controller : ["$scope", "$modalInstance", "cartObj", function($scope, $modalInstance, cartObj) {
}],
इस मोडल उदाहरण है कि $ गुंजाइश, $ modalInstance सेवाओं और, महत्वपूर्ण बात, संकल्प लिया cartObj सेवा पारित कर दिया के लिए एक नियंत्रक पैदा करता है।
सेवाएं सिंगल हैं जो नियंत्रकों में डेटा साझा करने के लिए उपयोग की जाती हैं। इसका मतलब है कि कार्टओबीजे सेवा का एक संस्करण है और यदि एक नियंत्रक इसे अद्यतन करता है, तो दूसरा नियंत्रक सेवा से पूछताछ कर सकता है और डेटा को किसी भी अन्य नियंत्रक द्वारा अपडेट किया जा सकता है। यह बहुत अच्छा है, लेकिन अगर नियंत्रक लोड होने पर सेवा से कुछ मूल्य के साथ एक वैरिएबल को प्रारंभ करने की आवश्यकता है, तो यह अनिर्धारित वापस आ जाएगा क्योंकि इसे पहले पूछना है और फिर डेटा वापस पाने के लिए प्रतीक्षा करना है।
resolve : { // This fires up before controller loads and templates rendered
cartObj : function() {
return cartObj;
}
}
});
कारण यहां संकल्प प्रयोग करने के लिए शायद इसलिए है क्योंकि स्वयं टेम्पलेट निर्भर है पर cartObj से कुछ डेटा उपलब्ध जा रहा है जब टेम्पलेट भरी हुई है है: यह जहां संकल्प में आता है। संकल्प लोडर से पहले वादे को हल करेगा ताकि जब ऐसा होता है, तो डेटा वहां और तैयार होता है। असल में, संकल्प एक नियंत्रक के अंदर मॉडल के प्रारंभिककरण को सरल बनाता है क्योंकि प्रारंभिक डेटा नियंत्रक को डेटा आउट करने और डेटा लाने की आवश्यकता के बजाय नियंत्रक को दिया जाता है।
हल किए गए कार्टओबीजे को मोडल इंस्टेंस में पारित किया जाता है और इसलिए इसे नियंत्रक में एक्सेस किया जा सकता है: cartObj। कुछप्रोपर्टी।
यह गलत है: 'मोडल इंस्टेंस नामक एक चर का उपयोग $ मोडल सेवा ओपन विधि को कॉल करने के लिए किया जाता है।' 'मोडल' सेवा की 'ओपन()' विधि को कॉल करने से मोडल इंस्टेंस लौटाता है, जिसे 'मोडल इंस्टेंस' में संग्रहीत किया जाता है। चर। – ps2goat
मैंने पाया कि यह केवल तब काम करता है जब आपने टेम्पलेट के बजाय modal.open कॉल में नियंत्रक को परिभाषित किया – nuander