2017-01-10 7 views
6

मान लीजिए मैं निम्नलिखित घटक है:कोणीय 2 में इनलाइन टेम्पलेट त्रुटियों को कैसे पकड़ें?

@Component({ 
    template: '<div>{{foo.bar}}</div>' 
}) 
class DemoComponent { 
    foo = undefined; 
} 

सूचना कैसे मैं एक अपरिभाषित मूल्य की bar संपत्ति तक पहुंचने का प्रयास कर रहा हूँ।

Error in class DemoComponent - inline template:1:9 caused by: Cannot read property 'bar' of undefined

मैं एक custom ErrorHandler का उपयोग कर इस त्रुटि को पकड़ने के लिए चाहते हैं:

class LoggingErrorHandler implements ErrorHandler { 
    constructor(private logger: Logger) { 
    } 

    handleError(error: any): void { 
    this.logger.error(error); 
    } 
} 

हालांकि, handleError विधि टेम्पलेट त्रुटियों के लिए नहीं बुलाया जाता है इस के लिए इसी तरह एक त्रुटि फेंकता है। मेरा कस्टम त्रुटि हैंडलर अन्य त्रुटियों के लिए ठीक काम करता है - बस टेम्पलेट त्रुटियों नहीं। तो मैं टेम्पलेट त्रुटियों को कैसे पकड़ूं?

+2

यहां क्या गलत है? https://plnkr.co/edit/mvNJ61VJUlI5oITQJzaN?p=preview – yurzui

+0

प्लंकर के लिए धन्यवाद। हाँ, ऐसा लगता है कि यह ठीक काम कर रहा है। मेरा ऐप एक कोणीय 1/कोणीय 2 संकर है। मुझे अभी तक निश्चित रूप से पता नहीं है, लेकिन मुझे लगता है कि इससे समस्याएं पैदा हो रही हैं और यही कारण है कि कस्टम त्रुटि हैडलर मेरे लिए काम नहीं कर रहा है। – battmanz

+1

शायद यह उन दुर्लभ समयों में से एक है जब यह इस प्रश्न के लिए दोहरी कोणीय/कोणीय टैग – JGFMK

उत्तर

0

आप *ngIf="!foo.bar" के साथ एक टेम्पलेट बना सकते हैं।

अगर यह है एक async अनुरोध को इंतजार कर रहे हैं, तो आप async पाइप सुरक्षित ऑपरेटर के साथ एक त्रुटि फेंक बिना इस्तेमाल कर सकते हैं बस मूल्य के लिए प्रतीक्षा करने के लिए: (foo | async).bar

वहाँ एक टेम्पलेट के लिए एक विशेष कारण है इसके लिए त्रुटि हैंडलर?

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