Log*_*erv 7 javascript typescript angular
我正在通过 youtube 学习 angular,但我正在尝试做一些新的事情,但我遇到了一个错误,我的代码附在下面,帮帮我。
我想像这样设置属性,div.setAttribute('(click)',"popUp($event)");但出现错误。
打字稿
export class AppComponent {
createEl(){
console.time("timer");
for (let i = 0; i < 10; i++) {
let div = document.createElement("div");
div.textContent = `Hello, World! ${i}`;
div.setAttribute('(click)',"popUp($event)");
document.getElementById('divEl')?.appendChild(div);
};
console.timeEnd("timer");
}
Run Code Online (Sandbox Code Playgroud)
HTML
<div id="divEl"></div>
<button (click)="createEl()">click me</button>
Run Code Online (Sandbox Code Playgroud)
错误

这并不是真正的有角的做事方式。尽量避免对诸如document.createElement.
实现这一点的更好方法是定义模板中重复元素的外观并从数组中驱动它。这样我们就可以让模板做显示,打字稿做处理,Angular 处理两者之间的一切。
<div id="divEl">
<div *ngFor="let row of rows; index as i;" (click)="popUp($event)">
Hello, World! {{i}}
</div>
</div>
<button (click)="createEl()">click me</button>
Run Code Online (Sandbox Code Playgroud)
export class AppComponent {
rows: unknown[] = [];
createEl():void {
this.rows.push('something');
}
popUp(event:Event):void {}
}
Run Code Online (Sandbox Code Playgroud)
更多关于循环的阅读:https : //angular.io/api/common/NgForOf
下面检查一下就对了。
div.addEventListener('click', (e) => {
this.popUp(e);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
179 次 |
| 最近记录: |