2013-04-11 16 views
5

मेरे पास एक कोणीय स्क्रिप्ट है, जो रूट रूटस्कोप ($$ प्रसारण का उपयोग करके) पर एक ईवेंट प्रसारित करती है।

Uncaught TypeError: के कोणीय मैं उपयोग कर रहा हूँ संस्करण 1.1.4

कुछ अवसरों पर, यह कोणीय कोड के अंदर एक अपवाद फेंकता है संपत्ति नहीं पढ़ सकते हैं अशक्त की '$$ nextSibling'।

क्या किसी के पास कोई त्रुटि है जो इस त्रुटि का कारण हो सकता है? दुर्भाग्य से जिस कोड में यह त्रुटि होती है वह पोस्ट करने के लिए बड़ी है, लेकिन शायद कोई मुझे सही दिशा में इंगित कर सकता है?

कोणीय कोड जहां यह होता है:

// Insanity Warning: scope depth-first traversal 
     // yes, this code is a bit crazy, but it works and we have tests to prove it! 
     // this piece should be kept in sync with the traversal in $digest 
     if (!(next = (current.$$childHead || (current !== target && current.$$nextSibling)))) { 
     while(current !== target && !(next = current.$$nextSibling)) { 
जबकि बयान पर

अद्यतन: प्रसारण एक बाहरी घटक क्लिक करें घटना पर एक क्लिक किए गए घटना अंदर से excuted है की एक संपत्ति है बाहरी घटक के लिए एक कॉन्फ़िगरेशन ऑब्जेक्ट।

+0

ओच। मुझे लगता है कि कोड सभी क्षेत्रों को खोजने के लिए एक पाचन चक्र के दौरान चलता है। ऐसा लगता है कि 'वर्तमान' परिभाषित नहीं किया गया है। क्या आप स्कॉप्स के साथ कुछ अजीब कर रहे हैं? खुद को बनाने, या मैन्युअल रूप से उन्हें नष्ट करने की तरह? –

+0

ऐसा नहीं है कि मुझे पता है ... स्थिति के बारे में अधिक जानकारी के लिए अपडेट देखें जहां यह होता है – rekna

उत्तर

-2

समस्या का उपयोग या $$ के उपयोग की कमी के दायरे पर लागू होती है। कभी-कभी मुझे अन्य अवसरों पर $$ लागू करने की आवश्यकता होती है जो मैं पहले से ही लागू चरण में था ... एसपी मैंने सुरक्षित कार्यान्वयन को समाप्त कर दिया (केवल इंटरनेट पर पाया गया)। क्यों इस मानक कोणीय में लागू है, क्योंकि यह वास्तव में लागू करने के लिए सरल है नहीं है, और यह एक प्रतीक्षा समय बिना

+1

आप सोच सकते हैं कि सभी डाउनवॉट्स क्यों हैं। खैर, जो आप बोलते हैं उसे कोणीय टीम द्वारा विरोधी पैटर्न माना जाता है। हालांकि "सुरक्षित लागू" दृष्टिकोण काम करता है, यह उचित समाधान नहीं है। आप $ timeout() में चीजों को लपेटने से बेहतर हैं ताकि आपका पाचन अगले पचाने के दौरान ठीक से लागू हो जाए। एंटी-पैटर्न के बारे में यहां देखें: https://github.com/angular/angular.js/wiki/Anti- पैटर्न – mikesigs

12
$timeout(function(){ 
    //do stuff 
}); 

$timeout कोडिंग को सरल रूप में अच्छी तरह से काम करता है।

+1

धन्यवाद टिप के लिए बहुत कुछ! मुझे इस $ स्कोप की तरह फ़ंक्शन पर $ लपेटना पड़ा। $ (...) {$ timeout (...() {myStuff();})}। निराशा के घंटों के बाद! यह कोणीय 1.0.8 का उपयोग कर रहा है। – xeor

+0

यह मेरे लिए काम किया ... धन्यवाद .. :) –

+0

धन्यवाद..मुझे निराशा के कुछ घंटे बचाए मुझे यकीन है! –

संबंधित मुद्दे