我试图将 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('#filter-form').yiiActiveForm([], []); jQuery('#id-vendors-list').yiiGridView({"filterUrl":"/vendors/vendor/index","filterSelector":"#w0-filters input, #w0-filters select"}); });
我该如何解决?
最佳答案
您可能对安全 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>
关于http - Angular 2 将 HTML 放入标签中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41488631/