美文网首页
angular 中对动态生成的html进行监听。

angular 中对动态生成的html进行监听。

作者: Mrhy1996 | 来源:发表于2019-10-25 18:27 被阅读0次

环境

angular8

问题概述:

前端的html代码是后台数据返回的,前端用了

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

去解析,问题为对innerHtml中的代码中的img添加click的点击事件。

解决思路:

  • 开始想着替换img标签,将后台返回来的img全都加上click的点击事件,比如:
<img (click)="test()"

实际测试,发现click事件不生效。

  • 另外一种解决思路
    主要代码如下
    typescript:
  previewVisible = false;
    previewImage: string;
  constructor(private  el: ElementRef, private renderer: Renderer2) {
    }
  /**
     * 用renderer监测图片点击事件,这块代码放进ngOninit()中就行,只要是页面进行点击,就会触发监听
     */
    monitoreByRenderer() {
        this.renderer.listen(this.el.nativeElement, 'click', (event) => {
            if (event.target.tagName === 'IMG') {
                event.stopPropagation();
                this.previewImage = event.target.currentSrc;
                console.log(this.previewImage);
                this.previewVisible = true;
            }
        });
    }

html:

<nz-modal
        [nzVisible]="previewVisible"
        [nzContent]="modalContent"
        [nzFooter]="null"
        [nzMask]="false"
        (nzOnCancel)="previewVisible = false"
        nzWidth="800px">
    <ng-template #modalContent>
        <img [src]="previewImage" [ngStyle]="{ width: '100%' }"/>
    </ng-template>
</nz-modal>

这是用的renderer2的内容,其实他还有很多功能,需要的可以去官网看一下他的api;
简单解释一下业务场景:点击图片,进行图片的放大预览查看,通过上述代码就可以进行实现。

相关文章

  • angular 中对动态生成的html进行监听。

    环境 angular8 问题概述: 前端的html代码是后台数据返回的,前端用了 去解析,问题为对innerHtm...

  • JSP是什么?JSP是怎么运行的?

    在动态Web项目的开发中,经常需要动态生成HTML。内容(如系统中的当前在线人数需要动态生成)。如果使用Servl...

  • loading data dynamically and as

    .py .html .js 异步加载数据,动态追加元素到页面,动态生成html标签中的内容。好处:It just ...

  • 数据双向绑定方面笔记

    一、vue项目不能够实时监听(双向绑定)动态生成的数据; 上面的案例中,obj1.txt能够进行双向绑定,但是ob...

  • Jquery动态生成html

    Jquery动态生成html:

  • lifecycle-component

    以前的lifecycle-component采用的注解处理器, 编译时动态生成adapter进行宿主生命周期的监听...

  • vue 监听input的改变

    要求:在动态生成的input中,监听input的改变,且是输入结束后,再调用监听方法。 第一种: 附注:v-on:...

  • input指令

    概述 Angular js的input指令是对html中的input元素的一个封装,Angular js中的inp...

  • [a]标签

    概述 Angular JS中的[a]标签只是对HTML中的[a]标签的一个简单的封装。在Angular JS中会检...

  • KVO与KVC原理

    KVO 1:实现原理 对实例对象属性监听,会利用runtime动态生成一个类NSKVONotifying_Clas...

网友评论

      本文标题:angular 中对动态生成的html进行监听。

      本文链接:https://www.haomeiwen.com/subject/ytrevctx.html