घटक वर्ग से एक्सेस टेम्प्लेट संदर्भ चर


108
<div>
   <input #ipt type="text"/>
</div>

क्या घटक वर्ग से टेम्पलेट एक्सेस चर को एक्सेस करना संभव है?

अर्थात, क्या मैं इसे यहाँ तक पहुँचा सकता हूँ,

class XComponent{
   somefunction(){
       //Can I access #ipt here?
   }
}

जवाबों:


152

इसके लिए एक उपयोग-मामला है @ViewChild:

https://angular.io/docs/ts/latest/api/core/index/ViewChild-decorator.html

class XComponent {
   @ViewChild('ipt', { static: true }) input: ElementRef;

   ngAfterViewInit() {
      // this.input is NOW valid !!
   }

   somefunction() {
       this.input.nativeElement......
   }
}

यहाँ एक कार्यशील डेमो है:

https://stackblitz.com/edit/angular-viewchilddemo?file=src%2Fapp%2Fapp.component.ts


लेकिन डिबगिंग पर मुझे यह अपरिभाषित के रूप में ही मिल रहा है।
— जैकऑफऑल

जैसा कि मैंने उल्लेख किया है, इसकी एकमात्र उपलब्ध घटना के बाद ngAfterViewInit()निकाल दिया गया था। आपको ViewChild'@ कोणीय / कोर` ..
— mxii

लेकिन हम एक मूल्य कैसे निर्धारित कर सकते हैं? मैंने कोशिश की है this.ipt.nativeElement.setAttribute('value', 'xxx');लेकिन कुछ नहीं होता है। और वहाँ की तरह कोई तरीके हैं value()या setValue()यहां तक कि अगर मैं प्रकार HTMLInputElement (मैं आईडीई के कोड हिंट / स्वत: पूर्ण पर इस आधारित कर रहा हूँ) की यह घोषणा,। मेरे मामले में, मुझे मूल्य पढ़ने की परवाह नहीं है। मुझे बस अलग-अलग मूल्य निर्धारित करने की आवश्यकता है।
— MrCroft

वर्तमान में हॉलिडे में .. क्या आपने setPropertyभी कोशिश की ?
— mxii 19

1
नहीं करना चाहिए this.input.nativeElement.value = 'test'काम ?! शायद रूपों और उनके बाइंडिंग के साथ विशेष व्यवहार हैं।
— mxii
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.