kittencup / angular2-ama-cn

angular2 随便问
692 stars 101 forks source link

innerHtml 里的click事件不触发? #198

Open ruanzy opened 8 years ago

ruanzy commented 8 years ago

@Component({ templateUrl: <div [innerHtml]="html"></div> }) export class MyComponent { html= '<a href="javascript:void(0);" (click)="dd()">click</a>';

constructor() {

}

}

Imporial commented 8 years ago

模板都是会被 Angular 进行处理(编译),转换为浏览器能够识别的形式;而你传的字符串也仅仅只是字符串,未经处理丢给浏览器直接识别,浏览器可不知道什么是 Angular 表达式;你这里换成 DOM 原生事件应该才行

alwayrun commented 7 years ago

@ruanzy 这种方式 Angular 编译之后相当于设于元素的属性

html= '<a href="javascript:void(0);" (click)="dd()">click</a>';
this._el_0 = this.renderer.createElement(parentRenderNode,'div',(null as any));
this.renderer.setElementProperty(this._el_0,'innerHTML',html);
winpzs commented 7 years ago

目前也没查到可以支持直接html可以解释的,ng2都是component单位存在,做个临时component看看行的通不

winpzs commented 7 years ago

目前我只用