如何使用 angular 6 在 HTML 元素上绑定动态函数?
how to bind dynamic function on HTML element using angular 6?
我正在尝试将事件绑定到动态创建的元素上。我很成功,但我无法将函数绑定到事件。这是我的代码
.ts代码
data = ['fn1()', 'fn2()', 'fn3()'];
fn1() { alert(1) }
fn2() { alert(2) }
fn3() { alert(3) }
html代码
table>
<ng-container *ngFor='let d of data'>
<tr (click)=d>
<td>
:) !!!
</td>
</tr>
</ng-container>
但是,当我静态添加函数时,它会被调用,即。
<table>
<ng-container *ngFor='let d of data'>
<tr (click)=fn1()>
<td>
:) !!!
</td>
</tr>
</ng-container>
</table>
这行得通,谁能帮我解决这个问题?
您需要一个函数数组,而不是一个字符串数组。并且您想在单击 div 时调用该函数:
打字稿:
fn1 = () => { alert(1) };
fn2 = () => { alert(2) };
fn3 = () => { alert(3) };
data = [this.fn1, this.fn2, this.fn3];
HTML:
<div (click)="d()">
我正在尝试将事件绑定到动态创建的元素上。我很成功,但我无法将函数绑定到事件。这是我的代码
.ts代码
data = ['fn1()', 'fn2()', 'fn3()'];
fn1() { alert(1) }
fn2() { alert(2) }
fn3() { alert(3) }
html代码
table>
<ng-container *ngFor='let d of data'>
<tr (click)=d>
<td>
:) !!!
</td>
</tr>
</ng-container>
但是,当我静态添加函数时,它会被调用,即。
<table>
<ng-container *ngFor='let d of data'>
<tr (click)=fn1()>
<td>
:) !!!
</td>
</tr>
</ng-container>
</table>
这行得通,谁能帮我解决这个问题?
您需要一个函数数组,而不是一个字符串数组。并且您想在单击 div 时调用该函数:
打字稿:
fn1 = () => { alert(1) };
fn2 = () => { alert(2) };
fn3 = () => { alert(3) };
data = [this.fn1, this.fn2, this.fn3];
HTML:
<div (click)="d()">