2017-04-20 9 views
0

動的に私のサーバーからHTMLコンテンツをjson形式で取得しています。角2:innerHTML属性と画像のsrcパスを変更しました

{ "title":"Home", "name":"ss_home", "content":"<div class=\"ExternalClass3dfsfsf204E51\"><table id=\"layoutsTable\" style=\"width&#58;100%;\"><tbody><tr style=\"vertical-align&#58;top;\"><td style=\"width&#58;100%;\"><div class=\"ms-rte-layoutszone-outer\" style=\"width&#58;100%;\"><div class=\"ms-rte-layoutszone-inner\"><div class=\"ms-rtestate-read ms-rte-embedcode ms-rtestate-notify ms-rte-embedil s4-wpActive\" unselectable=\"on\"><table border=\"1\" width=\"850\" unselectable=\"on\"><tbody unselectable=\"on\"><tr unselectable=\"on\"><td unselectable=\"on\"> \r\n    <strong unselectable=\"on\">Quality Policy&#58;</strong><br unselectable=\"on\"><strong unselectable=\"on\" style=\"line-height&#58;20px;\"><em unselectable=\"on\">“Some content”.</em> </strong></td></tr><tr unselectable=\"on\"><td unselectable=\"on\">\r\n    <strong unselectable=\"on\">Deriving Project Quality Objectives-Approach</strong><span unselectable=\"on\" style=\"line-height&#58;19px;\"> </span>\r\n    <img width=\"850\" height=\"414\" src=\"/org/Data/Home-page.png\" title=\"Home page\" class=\"alignnone size-large wp-image-34364857\" unselectable=\"on\" data-themekey=\"#\" alt=\"\" /> &#160; </td></tr></tbody></table> \r\n <span unselectable=\"on\" style=\"line-height&#58;30px;\">\r\n  <br unselectable=\"on\">\r\n  <strong unselectable=\"on\">Organization Chart</strong></span><img width=\"650\" height=\"350\" src=\"/org/Data/Org_chart.jpg\" title=\"Org chart\" class=\"alignnone size-large wp-image-34138132\" unselectable=\"on\" data-themekey=\"#\" alt=\"\" /></div><p>​​<a class=\"link_nav\" data-action=\"project_initiation\" href=\"#\" title=\"Project Initiation\" unselectable=\"on\">Project Initiation</a> \r\n <br> </p></div></div></td></tr></tbody></table><span id=\"layoutsData\" style=\"display&#58;none;\">false,false,1</span></div>" } 

component.ts

<div class="content" [innerHTML]="pq.content_QMS | safeHtml"></div> 

sate.html.pipe.ts

transform(value) { 
return this.sanitized.bypassSecurityTrustHtml(value); } 

私はこのHTMLコンテンツを変更するための他のオプションはありません。しかし、私は二つのことを達成するために持っている私のアプリのために、

  1. 画像のパスを変更クリックイベント

最終的な出力があるべき追加:

<img src="/org/Data/Org_chart.jpg" /> to <img src="http://example.com/org/Data/Org_chart.jpg" 

<a class="link_nav" data-action="project_initiation" href="#" title="Project Initiation"> to  <a class="link_nav" (click)="project_initiation" href="#" title="Project Initiation"> 

どのようにパイプのregrexや他のロジックを使用して達成できますか?私にそれに関するいくつかの機能的な示唆を与えてください。

+0

1.「画像パスを変更する」は、テキストの操作だけで行うことができます。 2.イベント - コンポーネントのhost要素にハンドラを設定しようとする可能性があります。 –

+0

@JuliaPassynkova私はaddEventListner 'this.elementRef.nativeElement.querySelector( 'link_nav')を試しました。addEventListener( 'click'、' but event innerHTMLコンテンツのトリガーではありません –

答えて

0
@Component({ 
    selector: 'my-app', 
    template: ` 
    <div> 
    <div class="content" [innerHTML]="value"></div> 
    </div> 
    `, 
    }) 
    export class App implements OnInit { 
    value; 

    constructor(private sanitized: DomSanitizer) { 
    } 

    @HostListener('click', ['$event.target']) 
    clicked(eventTarget: HTMLElement) { 
     console.log('clicked', eventTarget); 
    } 

    ngOnInit() { 
    this.value = 
    this.sanitized.bypassSecurityTrustHtml('<a href="#" 
     href="javascript:void(0)">hi link<a>'); 
    } 
} 
関連する問題