2016-11-02 46 views
5

पर विशेषताओं को जोड़ें I कोणीय 2 घटक कार्यान्वयन में बनाए गए कस्टम चयनकर्ता में विशेषताओं को जोड़ना चाहते हैं।कोणीय 2 घटक चयनकर्ता

@Component({ 
selector: 'my-node',  // add attributes to this selector 
template: `<div> <ng-content></ng-content> </div>`  
}) 

ताकि जब मैं <my-node> कर डोम इन अतिरिक्त विशेषताओं

<my-node flex="25" layout="row">

साथ चयनकर्ता उत्पन्न करता है मैं नहीं चाहता कि कठिन कोड में ये गुण हर बार जब मैं <my-node> करना चाहते हैं। मैं उन विशेषताओं को चयनकर्ताओं का निर्माण टेम्पलेट का हिस्सा बनना चाहता हूं।

कुछ इस तरह मैं के लिए क्या देख लेकिन एपीआई

@Component({ 
selector: 'my-node',  
selectorAttributes: `layout="row"` // generates <my-node layout="row"> 
template: `<div> <ng-content></ng-content> </div>`  
}) 
+1

उपयोग करने के लिए आप को प्राप्त करने के प्रयास कर रहे हैं क्या है? उन्हें टेम्पलेट के मूल तत्व पर क्यों न रखें? – jonrsharpe

+1

क्या आपने @ होस्टिंग बाइंडिंग की कोशिश की है? – yurzui

उत्तर

7

@Component मेटाडाटा संपत्ति का उपयोग host में यह ऐसा कुछ नहीं देखा जाना है।

@Component({ 
    selector: 'my-node',  // add attributes to this selector 
    template: `<div> <ng-content></ng-content> </div>`, 
    host: { // this is applied to 'my-node' in this case 
     "[class.some-class]": "classProperty", 
     "[attr.some-attr]": "attrProperty", 
    }, 
}) 

यहां एक उदाहरण plunk है। देखें app/app.component.ts

+0

होस्ट जोड़ना: '[attr] = "घटकप्रॉप" त्रुटियां, क्या आप इस "होस्ट:" कार्यान्वयन के साथ दस्तावेज़ों से लिंक कर सकते हैं? – ndesign11

+0

क्षमा करें, यह गलत था, मेरे उत्तर को अपडेट किया गया –

+0

बहुत यकीन है कि मुझे यही चाहिए लेकिन अभी भी त्रुटियां मिलेंगी। '' Attr 'से बंधे नहीं जा सकते क्योंकि यह' my-node 'की ज्ञात संपत्ति नहीं है। – ndesign11

5

एक अन्य विकल्प HostBinding dectorator

@HostBinding('attr.layout') 
layout = 'row'; 
+0

यह मेरे लिए बहुत अच्छा काम करता है। मुझे लगता है कि यह सबसे अच्छा समाधान है क्योंकि आप इनपुट, आउटपुट, निजी/सार्वजनिक घटक जानकारी इत्यादि जैसे अन्य वर्ग चर के आगे रख सकते हैं। यह आपको मूल्य निर्धारित करने की अनुमति देता है और यदि आप चाहें तो अपने कोड का विश्लेषण करने के लिए टाइपस्क्रिप्ट प्राप्त कर सकते हैं। अपने होस्ट बाइंडिंग मान के रूप में फ़ंक्शन का मूल्यांकन करें। – vincecampanale

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