सेवा काम करेगी, लेकिन केवल साधारण स्कोप और कंट्रोलर का उपयोग करके इसे करने का एक तार्किक तरीका यह है कि आप अपने नियंत्रकों और तत्वों को स्थापित करें ताकि यह आपके मॉडल की संरचना को दर्शाता हो। विशेष रूप से, आपको एक मूल तत्व और नियंत्रक की आवश्यकता होती है जो एक मूल गुंजाइश स्थापित करता है। प्रपत्र के अलग-अलग पृष्ठों को एक दृश्य में रहना चाहिए जो कि माता-पिता के लिए एक बच्चा है। चाइल्ड व्यू अपडेट होने के बाद भी पैरेंट स्कोप बना रहता है।
मुझे लगता है कि आप यूआई-राउटर का उपयोग कर रहे हैं ताकि आपको नामित नाम दिखाई दे सकें। फिर छद्म कोड में:
<div ng-controller="WizardController">
<div name="stepView" ui-view/>
</div>
उसके बाद विजार्डकंट्रोलर उस स्कोप वेरिएबल को परिभाषित करता है जिसे आप मल्टी-पेज फॉर्म के चरणों में संरक्षित करना चाहते हैं (जिसे मैं "विज़ार्ड" के रूप में संदर्भित कर रहा हूं)। तब आपके रूट stepView
केवल अपडेट होंगे । प्रत्येक चरण के अपने टेम्पलेट, नियंत्रक और स्कोप हो सकते हैं, लेकिन उनके स्कोप पृष्ठ से पृष्ठ पर खो जाते हैं। लेकिन विज़ार्डकंट्रोलर में स्कोप सभी पृष्ठों पर संरक्षित हैं।
चाइल्ड कंट्रोलर्स से विजार्डकंट्रोलर स्कोप्स को अपडेट करने के लिए, आपको प्रत्येक स्कोप वैरिएबल के लिए विजार्डकंट्रोलर पर $scope.$parent.myProp = 'value'
एक फ़ंक्शन की तरह सिंटैक्स का उपयोग करने या परिभाषित करने की आवश्यकता होगी setMyProp
। अन्यथा, यदि आप चाइल्ड कंट्रोलर्स से सीधे पेरेंट स्कोप वेरिएबल सेट करने की कोशिश करते हैं, तो आप पेरेंट वेरिएबल को शैडो करते हुए, बच्चे पर ही एक नया स्कोप वैरिएबल बना लेंगे।
समझाने के लिए तरह तरह के और मैं एक पूर्ण उदाहरण की कमी के लिए माफी माँगता हूँ। मूल रूप से आप एक पेरेंट कंट्रोलर चाहते हैं जो एक पेरेंट स्कोप स्थापित करे, जो आपके फॉर्म के सभी पृष्ठों पर संरक्षित रहेगा।