My Angular2 app consumes a RESTful API and then creates a bunch of <select>
elements based on the result. I'm trying to call a jQuery function on these <select>
elements, but it looks like the jQuery function executes too late. I tried putting the function in ngAfterContentInit
but that didn't work. Putting it in ngAfterViewChecked
froze my browser.
After the page has rendered, if I paste the jQuery function into the console, everything works, so I know that my function and everything are functional. Their order is just probably messed up or something.
In my component:
ngOnInit() {
this.myService.getAll().subscribe(
data => this._data = data,
error => this._error = "invalid.");
}
ngAfterViewInit() {
$("select").select2(); // <--- jQuery function I need to execute after rendering
}
In my template:
<select *ngFor="let d of _data">...blah blah</select>
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…