我想在加载元素时调用带参数的函数。
就像安格尔的恩吉尼特一样。我们能在角4处做吗?
<div *ngFor="let item of questionnairelist" (onload)="doSomething(item.id)" ></div>
我的typescript函数:
doSomething(id) {
console.log(id);
}
最佳答案
你需要写一个指令
import {Directive, Input, Output, EventEmitter} from '@angular/core';
@Directive({
selector: '[ngInit]'
})
export class NgInitDirective {
@Input() isLast: boolean;
@Output('ngInit') initEvent: EventEmitter<any> = new EventEmitter();
ngOnInit() {
if (this.isLast) {
setTimeout(() => this.initEvent.emit(), 10);
}
}
}
在HTML中使用
<div *ngFor="let quetionnaireData of questionnairelist ; let $last = last" [isLast]='$last'
(ngInit)="doSomething('Hello')"></div>
同时在app.module中声明指令
@NgModule({
declarations: [
..
NgInitDirective
],
......
})