2015-11-10 21 views
11

This उदाहरण दिखाता है कि बाल घटकों पर @Input() एनोटेशन का उपयोग कैसे करें। मेरा सवाल यह है कि आप रूट घटक पर इसका उपयोग कैसे करते हैं? उदाहरण के लिए आप ऊपर के लिंक पर कोड को संशोधित करता है, तो:रूट निर्देश पर कोणीय 2 इनपुट पैरामीटर

@Component({ 
selector: 'app', 
template: ` 
    <bank-account bank-name="RBC" account-id="4747"></bank-account> 
`, 
directives: [BankAccount] 
}) 
class App { 
    @Input() something: string; 
} 

bootstrap(App); 

और html में:

<app something="Test"></app> 

ऊपर के उदाहरण कभी अपडेट कुछ अनुप्रयोग घटक पर संपत्ति।

+1

मैं इस रूप में अच्छी तरह से करने के लिए इच्छुक की है। कुछ समय पहले एक बग जोड़ा गया है https://github.com/angular/angular/issues/4921 – TGH

उत्तर

16

This Tobias Bosch's comment अपने प्रश्न पर जवाब है:

कारण है कि इस काम नहीं कर रहा आपका index.html जिसमें आप जगह है कि <app something="Test"></app> एक कोणीय घटक नहीं है। इस वजह से, कोणीय इस तत्व को संकलित नहीं करेगा। और कोणीय रनटाइम के दौरान विशेषता मान नहीं पढ़ता है, केवल संकलन समय के दौरान, अन्यथा हम एक प्रदर्शन हिट प्राप्त करेंगे।

तो, इस समय आप रूट तत्व पर इनपुट पैरामीटर का उपयोग नहीं कर सकते हैं।

+0

अभिव्यक्ति/जेड से कोणीय 2 घटक में ऑब्जेक्ट्स की सरणी कैसे पास करें? मैं उस तरह से बांधना चाहता था और यह काम नहीं करता है। – user2705463

+0

यदि इसमें @ कॉम्पोनेंट सजावट है, तो यह कोणीय घटक नहीं है? – d512

17

मुझे लगता है कि आप अभी भी इस्तेमाल कर सकते हैं:

class App { 
    constructor(elm: ElementRef) { 
     this.something = elm.nativeElement.getAttribute('something'); 
    } 
} 
+0

यह पूरी तरह से ठीक काम करता है। ElementRef को कोणीय 2 // कोर से आयात किया जा सकता है। –

+0

बहुत बहुत धन्यवाद। :-) स्थिर मूल्यों के साथ सही काम करता है! – Patrick

+1

[ElementRef] (https://angular.io/docs/ts/latest/api/core/index/ElementRef-class.html) को सुरक्षा जोखिम लेबल के साथ चिह्नित किया गया है, इसलिए इसका उपयोग करके सावधान रहें। – eagor

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