通过HTML注入在Angular 2/4应用程序中运行javascript脚本

通过HTML注入在Angular 2/4应用程序中运行javascript脚本,javascript,angular,html-injections,Javascript,Angular,Html Injections,我对Angular 4中的脚本有问题。让我解释一下:我正在构建一个Angular应用程序,它将包含在一个更大的web应用程序中。因此,我的应用程序只是这个更强大的web应用程序中其他应用程序中的一个。在我的应用程序中,我需要包含一些表示此web应用程序公共区域的HTML代码。它们将是应用程序的标题、页眉、菜单和页脚。我的应用程序将被放置在剩余空间中。因此,我检索这些HTML代码,通过绕过清理将它们转换为SafeValue,并通过使用某些div的innerHTML属性将它们包括在内。在那之后,我可

我对Angular 4中的脚本有问题。让我解释一下:我正在构建一个Angular应用程序,它将包含在一个更大的web应用程序中。因此,我的应用程序只是这个更强大的web应用程序中其他应用程序中的一个。在我的应用程序中,我需要包含一些表示此web应用程序公共区域的HTML代码。它们将是应用程序的标题、页眉、菜单和页脚。我的应用程序将被放置在剩余空间中。因此,我检索这些HTML代码,通过绕过清理将它们转换为SafeValue,并通过使用某些div的innerHTML属性将它们包括在内。在那之后,我可以看到这些带有样式的HTMLs

这就是背景。问题是这些HTML中的脚本无法运行。即使它们没有被删除,您也可以检查页面的HTML并在那里查看脚本,但它们不会运行。我需要它们运行,因为它们需要执行一些重要的任务,例如用链接填充菜单,为菜单扩展设置动画,天知道还有什么

我已经尝试在index.html中包含这些html,使用document DOM对象替换我在index.html中作为占位符放置的div,但我遇到了相同的问题:它呈现,但脚本不运行。有趣的是,如果我将未在index.html中运行的脚本标记直接硬编码,而不是动态地工作

因此,脚本将具有以下形式:

<script type="text/javascript" src="//some_external_source"></script>
只有一句话:我无法控制我收到的这些常见HTML。我只是接收它们,为了web应用程序的视觉识别,我不得不使用它们


对不起,如果已经回答了。我已经寻找了好几天的答案,但我仍然没有找到答案。我确实找到了AngularJS的类似答案,所以我发布了。

这不是angular 2解决此类问题的方式,如果你想将你的应用程序分为单独的部分,如:内容、标题、,页脚您可能应该看看命名路由器出口,或转置

但如果你想按自己的方式来做,那么就这样做:

@Component({.your metadata..})
export class SomeComponent{
constructor (private domSanitizer:DomSanitizer){
    this.domSanitizer.bypassSecurityTrustScript(yourScript);
}
}