উপাদান শ্রেণি থেকে টেমপ্লেট রেফারেন্স ভেরিয়েবল অ্যাক্সেস করুন


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

উপাদান শ্রেণি থেকে টেমপ্লেট অ্যাক্সেস পরিবর্তনশীল অ্যাক্সেস করা সম্ভব?

যেমন, আমি কি এখানে এটি অ্যাক্সেস করতে পারি,

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

উত্তর:


151

এটি একটি ব্যবহারের ক্ষেত্রে @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


তবে ডিবাগিংয়ের সময় আমি এই.in.in কে নিজেই অপরিজ্ঞাত হিসাবে পেয়ে যাচ্ছি।
জ্যাকআফএল সমস্ত

যেমনটি আমি উল্লেখ করেছি, ইভেন্টটি ngAfterViewInit()চালিত হওয়ার পরে এটি কেবলমাত্র উপলভ্য । আপনাকে ViewChild'@ কৌণিক / কোর from .. থেকে আমদানি করতে হবে
mxii

তবে কীভাবে আমরা একটি মান সেট করতে পারি? আমি চেষ্টা করেছি this.ipt.nativeElement.setAttribute('value', 'xxx');কিন্তু কিছুই হয় না। এবং এর মতো কোনও পদ্ধতি নেই value()বা setValue(), যদিও আমি এটি টাইপ করে এইচটিএমএলআইপুটইলেটমেন্ট ঘোষণা করি (আমি এটি আইডিই এর কোড হিন্টিং / স্বতঃসমম্পূর্ণ উপর ভিত্তি করে)। আমার ক্ষেত্রে, আমি মানটি পড়ার বিষয়ে চিন্তা করি না। আমি শুধু বিভিন্ন মান সেট করতে হবে।
মিঃক্রফট

বর্তমানে হলিডে .. আপনিও চেষ্টা setPropertyকরেছেন?
mxii

1
this.input.nativeElement.value = 'test'কাজ করা উচিত ?! ফর্ম এবং তাদের বাইন্ডিংয়ের সাথে বিশেষ আচরণ রয়েছে।
mxii
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.