कोणीय निर्देशों के लिए टिप परेशानी-शूटिंग (या, हाइफ़न सब कुछ खत्म फिर से प्यार करने के लिए सीखने)

मैं उस बनाओ $http.get क्षुधा की एक जोड़ी है() छुपे बदसूरत त्रुटि के विवरण के साथ एक अच्छी तरह से स्वरूपित त्रुटि संदेश दिखाने के लिए सक्षम होना करने के लिए कॉल और मैं चाहता था, लेकिन सुलभ।  मूल रूप से, यह:

image

और फिर अगर त्रुटि पर प्रयोक्ता क्लिकें, वे और अधिक जानकारी देखें:

image

सरल सामान।  के बाद से सटीक एक ही संभावित त्रुटि प्रशासनिक स्क्रीन के रूप में अच्छी तरह के रूप में अंत उपयोगकर्ता स्क्रीन प्रकट कर सकते हैं, यह स्पष्ट रूप से एक कस्टम कोणीय निर्देश के लिए कहा जाता है।  मैं  यह पाया गया बकाया श्रृंखला के लेख (http://weblogs.asp.net/dwahlin/creating-custom-angularjs-directives-part-i-the-fundamentals) द्वारा महान डैन Wahlin.  उसकी सलाह का पालन, मैं बहुत जल्दी से निर्मित एक <दुनिया नमस्ते> निर्देशक और मेरी और अधिक जटिल त्रुटि प्रदर्शन squeegee पर ले जाया गया. मैं इस अधिक जटिल निर्देश के साथ परेशानी का एक बिट में भाग गया।  खुशी से, मौका द्वारा की तरह, मैंने WebStorm से कहा था (मैं इन दिनों का उपयोग संपादक) कि जे एस फ़ाइल एक कोणीय फ़ाइल था और यह मेरी मदद की समझ से बाहर मुद्दा।  इस निर्देश के लिए कोड है:

angular.module("CDLApp").निर्देशक("generalCdlErrorHandler", समारोह() {

वापस जाएँ {
प्रतिबंधित करें: "ई",
की जगह: सच है,

स्कोप: {
retrieveLastConfigurationError: "&"
},

टेम्पलेट:
'<div वर्ग = "चेतावनी-खतरे की चेतावनी" भूमिका = "की चेतावनी" एनजी-init = "doShowExpandedErrorDetails = true" एनजी-शो "retrieveLastConfigurationError =()">' +
' वहाँ था एक i/o त्रुटि या अन्य त्रुटि. यह आमतौर पर होता है क्योंकि कॉन्फ़िगरेशन डेटा फ़ाइल नहीं किया जा सकता है ' +
' पाया या कॉन्फ़िगरेशन फ़ाइल में गलत जानकारी है (जैसे कि कोई दस्तावेज़ लायब्रेरी को संदर्भित ' +
' जो मौजूद नहीं है).' +
' <br />' +
' <div एनजी-शो "doShowExpandedErrorDetails" =>' +
' <एक href = "#" एनजी-क्लिक = "doShowExpandedErrorDetails = ! doShowExpandedErrorDetails">' +
'विवरण को छुपाने के लिए यहाँ क्लिक करें।' +
' </एक>: ' +
' <br />' +
' <प्री>{{retrieveLastConfigurationError() | json}}</प्री>' +
' <br />' +
' </div>' +
' <div एनजी-शो = "!doShowExpandedErrorDetails">' +
' <एक href = "#" एनजी-क्लिक = "doShowExpandedErrorDetails = ! doShowExpandedErrorDetails">' +
'त्रुटि विवरण का विस्तार करने के लिए यहाँ क्लिक करें।' +
' </एक>' +
' </div>' +
'</div>'
};
});

मूल रूप से, मैं एक "generalCdlErrorHandler" नामक एक नया तत्व पैदा कर रहा हूँ।  यह retrieveLastConfigurationError नामक एक समारोह के लिए उपयोग की जरूरत है और कि गुंजाइश वस्तु में संभाला है।  मैं शायद सिर्फ माता पिता की गुंजाइश इस्तेमाल किया जा सकता, लेकिन लगता है कि आलसी।  अगर किसी को भी सोचता है कि मैंने किया जाना चाहिए कि, मैं इसके बारे में टिप्पणी में सुनना अच्छा लगेगा.

यह सब ठीक था, लेकिन मैं कुछ भी नहीं हो रही थी।  कोई त्रुटियाँ कंसोल में ऊपर popped (कम से कम एक बार में मैं मैं रास्ते के साथ बनाए गए सभी sx त्रुटियाँ तय).  मैं बस किसी भी आउटपुट से निर्देश नहीं मिला।  मैं चला गया और एनजी-शो के निर्देश और मैं पहले कुछ स्थैतिक पाठ जोड़ा * था * कि जाओ. यह ने मुझे लगता है कि शायद निर्देशक उलझाव "doShowExpandedErrorDetails" जैसे नए वार्स बनाएँ या एक "एनजी init" है करने की अनुमति नहीं थी कि वहाँ में। 

मैं वापस देख अगर मैं था एक प्रकार है और इस समय WebStorm मेरी मदद से बाहर करने के लिए HTML में चला गया।  मैं इस तरह की retrieveLastConfigurationError समारोह में गुजर गया था:

<जनरल cdl त्रुटि हैंडलर retrieveLastConfigurationError="CDLController.retrieveLastConfigurationError()">
</जनरल cdl त्रुटि हैंडलर>

लेकिन यह सच में यह किया जा करने के लिए आवश्यक:

<जनरल cdl त्रुटि हैंडलर पुनः प्राप्त अंतिम कॉन्फ़िगरेशन त्रुटि "CDLController.retrieveLastConfigurationError =()">
</जनरल cdl त्रुटि हैंडलर>

WebStorm काफी चालाक को पता था कि यह बंटे हो गया था।  अगर यह उस संकेत प्रदान नहीं था, मैं शायद अभी भी इस समस्या निवारण हो जाएगा मुस्कुराओ.  मज़ा बार!

इस चाल है: न केवल निर्देशक तत्व नाम बंटे है, तो तुम यह करने के लिए जोड़ें किसी भी विशेषताएँ होती हैं।  एक बार मैं हाइफ़न जोड़ा, यह सब बहुत अच्छा काम किया।  लघु एकल नामों का उपयोग करने के लिए दान की ट्यूटोरियल हुआ, तो मैं कनेक्शन नहीं बना था.

आशा है कि यह किसी को मदद मिलती है.

</अंत>

undefinedमेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin

कोई जवाब दो

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. अपेक्षित स्थानों को रेखांकित कर दिया गया है *