渲染动态html后,angular click()事件无法正常工作

时间:2018-03-06 09:57:33

标签: javascript angular

从服务器端加载的几个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>

2 个答案:

答案 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并单击单击功能。