从服务器端加载的几个html元素和angular click()事件也是其中的一部分。但渲染元素后事件未触发。我知道我需要通知DOM。我不能做到这一点。
component.ts
mport { Component} from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: '../Views/Dashboard.html',
providers: []
})
export class DashboardComponent {
public deviceData="<div (click)="Go()">Click</div>"; //e.x: loaded from server
constructor(){
}
Go():void{
alert("Go");
}
}
HTML
<div [innerHTML]="deviceData"></div>
答案 0 :(得分:2)
您可以使用
绑定事件<div class="classname" [innerHTML]="deviceData"></div>
this.deviceData = "<a herf='javascript:void(0);'>Click</a>";
ngOnInit()
{
var obj=this;
$(document).on('click', '.classname', function () {
obj.Go();
});
}
Go()
{
alert("Go");
}
答案 1 :(得分:0)
要呈现为html的单击函数(或任何Angular特定标记)不是最佳实践。尝试仅渲染裸基本html并单击单击功能。