--- मुझे पता है कि यह उत्तर इस प्रश्न के लिए नहीं है, लेकिन मैं ऐसे लोगों को चाहता हूं जो इस प्रश्न को पढ़ते हैं और ऐसा करने में परेशानी से बचने के लिए फैक्ट्रियों जैसी सेवाओं को संभालना चाहते हैं ----
इसके लिए आपको एक सेवा या एक कारखाने का उपयोग करने की आवश्यकता होगी।
सेवाओं नेस्टेड नियंत्रकों के बीच डेटा साझा करने के लिए सबसे अच्छा तरीका है।
डेटा साझा करने के बारे में इस विषय पर एक बहुत अच्छी टिप्पणी है कि वस्तुओं को कैसे घोषित किया जाए। इससे पहले कि मैं इसके बारे में पढ़ूँ, मैं अशुभ था क्योंकि मैं एक AngularJS जाल में गिर गया था, और मैं बहुत निराश था। तो मुझे इस मुसीबत से बचने में आपकी मदद करने दीजिए।
मैंने "एनजी-बुक: एंगुलरजेएस पर पूरी किताब" से पढ़ा है कि एंगुलरजेएस एनजी-मॉडल जो नंगे-डेटा के रूप में नियंत्रकों में बनाए जाते हैं, गलत हैं!
एक $ गुंजाइश तत्व इस तरह बनाया जाना चाहिए:
angular.module('myApp', [])
.controller('SomeCtrl', function($scope) {
// best practice, always use a model
$scope.someModel = {
someValue: 'hello computer'
});
और इस तरह नहीं:
angular.module('myApp', [])
.controller('SomeCtrl', function($scope) {
// anti-pattern, bare value
$scope.someBareValue = 'hello computer';
};
});
इसका कारण यह है कि DOM (html डॉक्यूमेंट) के लिए कॉल को शामिल करने के लिए इसे (BEST PRACTICE) पुनः शामिल किया गया है
<div ng-model="someModel.someValue"></div> //NOTICE THE DOT.
नेस्टेड कंट्रोलर्स के लिए यह बहुत मददगार है अगर आप चाहते हैं कि आपका चाइल्ड कंट्रोलर पेरेंट कंट्रोलर की किसी वस्तु को बदलने में सक्षम हो ...।
लेकिन आपके मामले में आप नेस्टेड स्कोप नहीं चाहते हैं, लेकिन सेवाओं से नियंत्रक तक ऑब्जेक्ट प्राप्त करने के लिए एक समान पहलू है।
कहते हैं कि आपके पास आपकी सेवा 'फैक्टरी' है और वापसी की जगह में एक ऑब्जेक्ट है जिसमें ऑब्जेक्टबी है जिसमें ऑब्जेक्ट शामिल है।
यदि आपके नियंत्रक से आप ऑब्जेक्ट को अपने दायरे में लाना चाहते हैं, तो यह कहना गलत है:
$scope.neededObjectInController = Factory.objectA.objectB.objectC;
यह काम नहीं करेगा ...
इसके बजाय केवल एक डॉट का उपयोग करें।
$scope.neededObjectInController = Factory.ObjectA;
फिर, DOM में आप objectA से objectC को कॉल कर सकते हैं। यह कारखानों से संबंधित एक सबसे अच्छा अभ्यास है, और सबसे महत्वपूर्ण, यह अप्रत्याशित और गैर-बिल्ली के समान त्रुटियों से बचने में मदद करेगा।