我尝试将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;});});
我该如何解决?
答案 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>