Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 呈现动态html后angular click()事件不起作用_Javascript_Angular - Fatal编程技术网

Javascript 呈现动态html后angular click()事件不起作用

Javascript 呈现动态html后angular click()事件不起作用,javascript,angular,Javascript,Angular,从服务器端加载的html元素很少,angular click()事件也是其中的一部分。但事件在渲染元素后不会触发。我知道我需要通知DOM。我不能这样做 组件。ts mport { Component} from '@angular/core'; @Component({ selector: 'app-root', templateUrl: '../Views/Dashboard.html', providers: [] }) export class Dashboard

从服务器端加载的html元素很少,angular click()事件也是其中的一部分。但事件在渲染元素后不会触发。我知道我需要通知DOM。我不能这样做

组件。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");
    }

}
mport{Component}来自“@angular/core”;
@组成部分({
选择器:'应用程序根',
templateUrl:“../Views/Dashboard.html”,
提供者:[]
})
导出类仪表板组件{
public deviceData=“单击”//e.x:从服务器加载
构造函数(){
}
Go():无效{
警惕(“围棋”);
}
}
html

<div [innerHTML]="deviceData"></div>

要呈现为html的单击函数(或任何特定角度的标记)不是最佳做法。尝试只渲染基本html,并将单击功能单独放入。将单击功能(或任何特定角度的标记)渲染为html不是最佳做法。尝试仅呈现基本html,并将单击功能单独放入。

您可以使用

<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");
}

this.deviceData=“单击”;
恩戈尼尼特()
{
var obj=这个;
$(文档).on('click','classname',函数(){
obj.Go();
});
}
Go()
{
警惕(“围棋”);
}

您可以使用

<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");
}

this.deviceData=“单击”;
恩戈尼尼特()
{
var obj=这个;
$(文档).on('click','classname',函数(){
obj.Go();
});
}
Go()
{
警惕(“围棋”);
}

你在哪里读到它应该有用?@AngularInDepth.com不能写这样的东西,你有什么解决办法吗,我需要帮助。你在哪里读到它应该有用?@AngularInDepth.com不能写这样的东西,你有什么解决办法吗,我需要帮助。我感谢你的回答@Manish,但是jquery的角度有点太大了。谢谢,让我试一下你给出的代码片段。thanx..要使用jquery,你必须写“declare var$:any;”这一行到typing.d.ts这应该是公认的答案,它解决了问题。我很感激你的答案@Manish,但是jquery的工作量太大了。谢谢,让我尝试一下您给定的代码片段。thanx..使用jquery时,您必须编写“declare var$:any;”这一行到typing.d.ts这应该是公认的答案,它解决了问题