2016-05-10 9 views
8

मैं मेजबान संपत्ति का उपयोग करके किसी अन्य निर्देश से किसी तत्व को निर्देश जोड़ना चाहता हूं, लेकिन अन्य निर्देशों का संदर्भ देने का कोई तरीका प्रतीत नहीं होता है।किसी अन्य निर्देश के मेजबान में कोणीय 2 निर्देश का उपयोग करें

@Directive({ 
    selector: '[one]', 
    host: { '[two]': '"some-value"' } 
    // How can I reference DirectiveTwo here? 
}) 
export class DirectiveOne { } 

@Directive({ 
    selector: '[two]' 
}) 
export class DirectiveTwo { } 

जब ऐसा कर रही है, मैं मानक " 'दो' करने के लिए बाध्य नहीं किया जा सकता, क्योंकि यह एक ज्ञात देशी संपत्ति नहीं है" त्रुटि मिलती है।

किसी अन्य निर्देश का संदर्भ देने और उपयोग करने का सही तरीका क्या है?

उत्तर

10

निर्देशक को स्थिर रूप से जोड़े गए HTML (तत्व, आईडी, विशेषता, कक्षा, ...) से मेल खाने वाले चयनकर्ताओं के लिए कोणीय द्वारा तत्काल किया जाता है।
@Component() या @Directive() सजावट के host पैरामीटर का उपयोग करके निर्देशों को तुरंत चालू करने का कोई तरीका नहीं है। वहाँ भी निर्देश बनाने के लिए कोई रास्ता नहीं है गतिशील ViewContainerRef.createComponent() (पूर्व DynamicComponentLoader)

का उपयोग कर एक और निर्देश की वजह से एक स्थिर हालांकि समर्थित है एक ही तत्व पर HTML जोड़ा कोणीय द्वारा instantiated गया था के लिए एक संदर्भ हो रही है।

+3

यदि ऐसा है, तो एक निर्देश को बढ़ाने या दूसरों की कार्यक्षमता का उपयोग करने के लिए सबसे अच्छा अभ्यास क्या है? यह एक बहुत ही महत्वपूर्ण सीमा की तरह लगता है। –

+0

@YonaAppletree वास्तव में एक ही सवाल है। कोई अन्य निर्देश के साथ एक निर्देश कार्यक्षमता कैसे बढ़ा सकता है? इस मामले में कोड का पुन: उपयोग कैसे करें? –

+0

मुझे लगता है कि यह एक बड़े अपडेट के लिए एक विषय है https://github.com/angular/angular/issues/11606 –

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