প্রশ্ন
@ViewChild
টেমপ্লেটে সম্পর্কিত উপাদানটি দেখানোর পরে সর্বাধিক মার্জিত উপায় কী ?
নীচে একটি উদাহরণ দেওয়া আছে। এছাড়াও Plunker পাওয়া যায়।
টেমপ্লেট:
<div id="layout" *ngIf="display">
<div #contentPlaceholder></div>
</div>
উপাদান:
export class AppComponent {
display = false;
@ViewChild('contentPlaceholder', {read: ViewContainerRef}) viewContainerRef;
show() {
this.display = true;
console.log(this.viewContainerRef); // undefined
setTimeout(()=> {
console.log(this.viewContainerRef); // OK
}, 1);
}
}
ডিফল্টরূপে লুকিয়ে থাকা বিষয়বস্তুগুলির সাথে আমার একটি উপাদান রয়েছে। কেউ যখন show()
পদ্ধতিটি কল করে তা দৃশ্যমান হয়। তবে, কৌণিক 2 পরিবর্তন সনাক্তকরণ সম্পূর্ণ হওয়ার আগে, আমি উল্লেখ করতে পারি না viewContainerRef
। আমি সাধারণত সমস্ত প্রয়োজনীয় ক্রিয়া setTimeout(()=>{},1)
উপরের মতো দেখান into আরও সঠিক উপায় আছে?
আমি জানি যে এর সাথে একটি বিকল্প রয়েছে ngAfterViewChecked
, তবে এটি অত্যধিক অকেজো কলগুলির কারণ ঘটায়।