मैं this SO answer explaining how to render a recursive JSON structure using a directive का पालन करने का प्रयास कर रहा हूं। हालांकि, प्रदान किए गए उत्तर के विपरीत, मेरा डेटा ज्ञात नहीं है जब डोम लोड होता है और कोणीय पहली बार चलता है।सेवा बदलते समय कोणीय जेएस निर्देश अद्यतन करना
इसके बजाय, मेरा डेटा एक HTML इनपुट फ़ील्ड से पुनर्प्राप्त किया जाता है और एक कोणीय सेवा में संग्रहीत किया जाता है (जब उपयोगकर्ता फॉर्म सबमिट करता है)।
सेवा के डेटा को संशोधित करते समय मैं एक कोणीय निर्देश को अद्यतित कैसे रख सकता हूं?
जवाब में अद्यतन जवाब देने के लिए
@musically_ut एक उत्कृष्ट जवाब यह है कि मदद की है प्रदान की है, लेकिन किसी समस्या से जूझ पता चला, एक कार्यान्वयन (यहाँ अद्यतन) को रोकने।
निर्देश एचटीएमएल कि कोणीय {{expressions}}
जो $scope
में संग्रहीत डेटा का उपयोग शामिल हो जाता है। चूंकि मूल समाधान $watch
था जब सेवा में यह डेटा तैयार था।निर्देश निर्देशों से पहले $scope
में 'नया' डेटा जोड़ा जा सकता है?
वास्तुकला और प्रवाह का अवलोकन है:
ControllerA
->ControllerA
उपयोगकर्ता से इनपुट प्राप्त करें - में परिवर्तन के लिए>$watch
->सेवा डेटाControllerB
को बदलने के लिए प्रयोग करें सेवाDirective
->$watch
चा के लिए सेवा में ngesControllerB
-> प्रदर्शन तब्दील डेटा (सेवा से) निर्देशों
समस्या चरण 5 और 6 के बीच है का उपयोग कर -> डेटा $scope
Directive
में जोड़े। निर्देश{{expressions}}
प्रस्तुत करता है इससे पहले कि नियंत्रक ने डेटा को $scope
में जोड़ा है। यहां तक कि अगर यह काम करता है, तो यह बहुत जटिल और 'हैकी' लगता है। असल में, प्रतिक्रिया करने के लिए, मैं नियंत्रक डेटा में $watch
का उपयोग कर रहा हूं ताकि यह सुन सके कि परिवर्तित डेटा एक सेवा में कब तैयार है। यहां तक कि यह थोड़ा ओवरकिल लगता है (सेवा कोई असीमित कॉल नहीं करता है)।
मैं कोणीय में नया हूँ, और निर्देशों में सेवाएं परिवर्तन देखने के बारे में जानकारी खोज करने के द्वारा पोस्ट करने के लिए मिलता है। जहाँ तक मेरा आप PB (और क्या मैं हाल ही में पढ़ा के अनुसार) को समझते हैं, आप नहीं में 'डेटा दायरे में जोड़ने के लिए' चाहिए अपने ** ControllerB **, तो आप बेहतर ** सेवा करने के लिए यह रिपोर्ट करना चाहिए **, और यह ** नियंत्रक बी ** स्कोप को स्वचालित रूप से सूचित किया जाएगा। वैसे, आप अपने ** निर्देश ** में ट्रैक करने के लिए ** सेवा ** परिवर्तन में सक्षम हो जाएगा (मैं पर नज़र रखने से आसानी से मतलब है 'बाहरी' ** controllerB ** गुंजाइश।) लेकिन शायद मैं गलत हूँ। –