2013-02-07 19 views
5

मैं जावास्क्रिप्ट नोब हूं और कोणीय सीखने की कोशिश कर रहा हूं।AngularJS में प्रकार रूपांतरण त्रुटियों को डीबग कैसे करें?

मैं इस तरह कुछ सरल AngularJS कोड है:

<div ng-controller="todoController"> 
    <span> temp = {{tempVal()}} </span> 
</div> 

बग पर्याप्त आसान है, tempVal एक स्ट्रिंग, नहीं एक विधि है।

मेरी समस्या (और प्रश्न) है, मैं डिबगिंग करते समय इस तथ्य को कैसे खोजूं?

मैं क्रोम का उपयोग कर रहा हूँ और Batarang एक्सटेंशन स्थापित किया है, लेकिन सभी मैं एक गुप्त स्टैक ट्रेस है:

TypeError: string is not a function 
at http://localhost:6202/lib/angular-1.0.4/angular.js:6213:13 
at Object.$interpolate.fn (http://localhost:6202/lib/angular-1.0.4/angular.js:4829:22) 
at Object.watchExpression (http://localhost:6202/AddSomeControl/index.html:416:29) 
at Object.Scope.$digest (http://localhost:6202/lib/angular-1.0.4/angular.js:7783:38) 
at Object.Scope.$apply (http://localhost:6202/lib/angular-1.0.4/angular.js:7991:24) 
at Object.$delegate.__proto__.$apply (http://localhost:6202/AddSomeControl/index.html:500:30) 
at http://localhost:6202/lib/angular-1.0.4/angular.js:932:13 
at Object.invoke (http://localhost:6202/lib/angular-1.0.4/angular.js:2813:25) 
at bootstrap (http://localhost:6202/lib/angular-1.0.4/angular.js:930:12) 
at angularInit (http://localhost:6202/lib/angular-1.0.4/angular.js:906:5) angular.js:5601 

मैं एक परिसर में इन उपकरणों का उपयोग कैसे पता लगाने की कोशिश अटक कर रहा हूँ, एप्लिकेशन, मुझे पता चला कि त्रुटि कहीं भी tempVal() लाइन के आसपास है।

मैंने त्रुटि को लॉग ऑन करते समय ब्रेक पॉइंट सेट करने की कोशिश की और कॉलस्टैक को देखा, और $ get में पकड़ा गया अपवाद देखें। $। पाचन जो मुझे शायद माता-पिता स्कोप आईडी (this.target) बता सकता है। $ आईडी), "वॉचर" (यह। लम्बाई) के साथ यह क्रैश हो गया है, और पिछले पूर्ण HTML तत्व (this.value) .... क्या यह सबसे अच्छा तरीका है? क्या एक दर्द :(

+0

http://blog.angularjs.org/2012/07/introducing-angularjs-batarang.html पर वीडियो देखें। यह बहुत अच्छी तरह से बताता है कि कैसे एंगुलर डीबग करने के लिए, कम से कम मैं अभी भी जावास्क्रिप्ट शुरुआती होने के बावजूद सभी सामान को ठीक करने में सक्षम हूं। – stiebitzhofer

+0

हाँ मैंने देखा कि यह सामान्य डीबगिंग के लिए अच्छा है, लेकिन दुर्भाग्य से यह डी जो मैं वर्णन कर रहा हूं उसकी तरह परिस्थितियों को संभाल नहीं सकता। मूल रूप से, कोणीय में अच्छी डीबग त्रुटि रिपोर्टिंग नहीं होती है (बटरंग त्रुटि रिपोर्टिंग के लिए नहीं है, यह टेम्पलेट/राज्य निरीक्षण के लिए है) – JasonS

+0

मैं कंसोल पर फ़ंक्शन tempVal की जांच करेगा (वीडियो में दिखाए गए दायरे को चुनने के बाद) । लेकिन अगर आप यहां फ़ंक्शन का कोड पोस्ट करते हैं तो शायद मैं आपकी मदद कर सकता हूं। – stiebitzhofer

उत्तर

5

जवाब, दुर्भाग्य से, यह है कि आप त्रुटियों के इस वर्ग डिबग नहीं कर सकते

अच्छी तरह से

, है। आप कर सकते हैं, यह "जानने के कोणीय संकलक/VM और यह डिबग" कहा जाता है

इन प्रकार की उपयोग त्रुटियों का कोई देव-उपयोगकर्ता अनुकूल रैपिंग नहीं है।

+1

बस आसान संदर्भ के लिए ताकि लोग कोणीय टीम प्रतिक्रिया देख सकें और शायद मदद कर सकें: https://github.com/angular/angular.js/issues/1 9 74 – basarat

+0

इस मुद्दे का जिक्र करने के लिए धन्यवाद, माफ करना मैंने खुद को एक लिंक पोस्ट नहीं किया! – JasonS

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

  • कोई संबंधित समस्या नहीं^_^