在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML5  HTML/ angular中需要通過(guò)插入帶有directive的img標(biāo)簽,在html中in

angular中需要通過(guò)插入帶有directive的img標(biāo)簽,在html中innerhtml這段標(biāo)簽后directive不觸發(fā)

現(xiàn)在有個(gè)需求,富文本生成的img標(biāo)簽需要在詳情中能點(diǎn)擊放大的效果。
我的想法是寫(xiě)一個(gè)點(diǎn)擊放大的組件,然后在富文本生成img標(biāo)簽的時(shí)候插入selector標(biāo)識(shí),調(diào)用放大組件。

問(wèn)題:

在詳情中獲取到生成好的img標(biāo)簽通過(guò)[innerHtml]插入到頁(yè)面中。

-通過(guò)[innerHtml]插入的標(biāo)簽angular會(huì)自動(dòng)刪除所有attribute防止xss攻擊,通過(guò)DomSanitizer解決了。雖然頁(yè)面展示了<img appNgzLightbox src="https://unsplash.it/600.jpg?image=251">標(biāo)簽。但是appNgzLightbox這個(gè)directive沒(méi)被觸發(fā)。直接在頁(yè)面中加入這個(gè)標(biāo)簽是沒(méi)有問(wèn)題的

為什么appNgzLightbox這個(gè)組件不能被觸發(fā),angular為什么無(wú)法識(shí)別標(biāo)簽中appNgzLightbox呢?是因?yàn)橥ㄟ^(guò)innerhtml后沒(méi)有觸發(fā)檢測(cè),angular沒(méi)法識(shí)別這個(gè)selector?求大神謝謝了,在線(xiàn)等。。。

ts

import { Component, OnInit, AfterViewInit } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
@Component({
  selector: 'ngz-lightbox',
  templateUrl: './ngz-lightbox.component.html',
  styleUrls: ['./ngz-lightbox.component.scss']
})
export class NgzLightboxComponent implements OnInit, AfterViewInit {
  url: any;
  constructor(private sanitizer: DomSanitizer) {}

  ngOnInit() {
    this.url = this.sanitizer.bypassSecurityTrustHtml(
      '<img  appNgzLightbox src="https://unsplash.it/600.jpg?image=251">'
    );
  }

  ngAfterViewInit() {}
}

html

<span [innerHtml]='url'></span>
回答
編輯回答
熊出沒(méi)
折中方案:在生成的標(biāo)簽上包裹一層,在包裹的那一層加上指令標(biāo)簽,點(diǎn)擊后觸發(fā)指令獲取到點(diǎn)擊到的元素,拿到url創(chuàng)建動(dòng)態(tài)組件,實(shí)現(xiàn)放大。可能innerHtml插入的標(biāo)簽,ng不會(huì)識(shí)別任何指令吧。

思考:創(chuàng)建動(dòng)態(tài)組件后,會(huì)調(diào)用applicationRef.bootstrap來(lái)初始化組件,并觸發(fā)變換檢測(cè)。(初始化后ng就能識(shí)別組件中的指令),是不是可以把動(dòng)態(tài)html扔到一個(gè)組件中,然后初始化這個(gè)組件,是否能識(shí)別動(dòng)態(tài)html中的指令呢。

2018年8月1日 18:05
編輯回答
還吻

我認(rèn)為這是因?yàn)榭蚣苤械闹噶?,再怎么設(shè)定語(yǔ)法怎樣,最終在瀏覽器中展示出來(lái)始終還是用的html,所以用innerHtml插入的標(biāo)簽中的自定義指令不會(huì)在打包運(yùn)行的時(shí)候被編譯,自然不會(huì)生效。

2018年3月14日 05:48