Angular 2将HTML放入标签中

时间:2017-01-05 15:24:11

标签: http angular

我尝试将HTML内容放在标记中。 div标签显示一个页面。但脚本标签不起作用。 看这个代码......

getRequestToAssignPage (param: string) : any {
    return this.$http.get(param)
        .map((res: Response) => {
            this.status = res;
            return res.text()
        })
        .toPromise()
        .then(response => this.response = response)
        .catch(error => this.status = error);

}

该方法通过获取新页面发出请求,并将其转换为文本。 然后我把文本放到div标签。 像这样。

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

它有效!页面显示,但脚本标签不起作用,它显示文本的方式。 页面加载后,下面的内容属于文本

  

jQuery(document).ready(function(){jQuery(&#39;#filter-form&#39;)。yiiActiveForm([],[]); jQuery(&#39;#id-vendors-list& #39;)。yiiGridView({&#34; filterUrl&#34;:&#34; / vendors / vendor / index&#34;,&#34; filterSelector&#34;:&#34; #w0-filters input, #w0-filters选择&#34;});});

我该如何解决?

1 个答案:

答案 0 :(得分:1)

您可能遇到安全HTML问题。

尝试实现此管道:

import { Injectable, Pipe } from '@angular/core';
import { SafeResourceUrl, DomSanitizer } from '@angular/platform-browser';

@Pipe({
  name: 'safe'
})
@Injectable()
export class SafePipe {
   constructor(private sanitizer: DomSanitizer) {}
   transform(url) {
   return this.sanitizer.bypassSecurityTrustResourceUrl(url);
}
}

然后:

<div [innerHTML]="response | safe"></div>