bypassSecurityTrustHtml和bypassSecurityTrustScript在Angular2中使用JavaScript

bypassSecurityTrustHtml和bypassSecurityTrustScript在Angular2中使用JavaScript,javascript,angular,Javascript,Angular,我试图通过组件在Angular2文件中执行javascript函数。但我不能让它工作 这就是我的ts文件的样子 import { Component, OnInit, Input } from '@angular/core'; import {BrowserModule, DomSanitizer} from '@angular/platform-browser' import { JavaScriptService } from './javascript.service'; @Compo

我试图通过组件在Angular2文件中执行javascript函数。但我不能让它工作

这就是我的ts文件的样子

import { Component, OnInit, Input } from '@angular/core';
import {BrowserModule, DomSanitizer} from '@angular/platform-browser'

import { JavaScriptService } from './javascript.service';

@Component({
  selector: 'app-javascript',
  template: `
     <div [innerHtml]="html"></div>
  `
})
export class JavaScriptService{

  html: any;

  constructor(private sanitizer: DomSanitizer) {

  this.html = sanitizer.bypassSecurityTrustHtml(`<div><script type="text/javascript"> alert('h');</script></div>`);

  }

}
从'@angular/core'导入{Component,OnInit,Input};
从“@angular/platform browser”导入{BrowserModule,DomSanitizer}
从“/javascript.service”导入{JavaScriptService};
@组成部分({
选择器:“应用程序javascript”,
模板:`
`
})
导出类JavaScriptService{
html:任何;
构造函数(专用消毒器:DomSanitizer){
this.html=sanitizer.bypassSecurityTrustHtml(`alert('h');`);
}
}
这就是在浏览器中呈现页面时html的外观(我查看了elemens)


警报(“h”);
我不明白为什么页面加载后警报没有执行

我用bypassSecurityTrustHtml和bypassSecurityTrustScript都试过了,但没有成功。如果有人能解决这个问题,我将不胜感激


谢谢大家!

我以前在您的.ts文件中见过这样做

它将执行您的脚本标记

const fragment=document.createRange();
document.body.appendChild(片段)


即使它能工作,我也会遇到这个问题,SafeValue必须使用[property]=binding:(请参阅)附加到我的页面,所以我正在解决这个问题。

AFAIK脚本标记不能使用
innerHTML
添加。有关如何添加脚本标记的信息,请参阅。我还需要此方面的帮助。此问题得到解决了吗?
<div ng-reflect-inner-h-t-m-l="<div><script type=&quot;text/javascript&quot;> alert('h');</script></div>">
<div><script type="text/javascript"> alert('h');</script></div>
</div>