在 AngularJS 中,HTML 模板中包含的任何内联 javascript 代码都不起作用

2023-12-02

在 AngularJS 中,HTML 模板中包含的任何内联 JavaScript 代码都不起作用。

例如:

main.html 文件:

<div ng-include="'/templates/script.html'"></div>

和 script.html 文件:

<script type="text/javascript">
    alert('yes');
</script>

当我打开主页时,我期待一条警告消息说“是”,但什么也没有发生。我认为 AngularJS 中的一些安全限制正在阻止内联脚本,但我找不到任何解决方法。

注意:我不使用 jQuery 或任何其他框架,仅使用 AngularJS 1.2.7。


jQlite 不支持脚本标签。 jQuery 可以,因此如果您需要此功能,建议包含 jQuery。

来自 Angular 的 Igor Minar 中这次讨论:

我们研究了 jqlite 中支持脚本标签,但是需要做什么 获得跨浏览器支持涉及很多黑魔法。为了 由于这个原因,我们决定现在我们只推荐 在这种特殊情况下,用户将 jquery 与 Angular 一起使用。它 我们重写三分之一的 jquery 来得到这个是没有意义的 在 jqlite 中工作。

这是相关的github问题jqLit​​e 应该以与 jQuery 相同的方式创建元素在结束这个问题之前,伊戈尔总结道:

这对于 jqlite 来说太疯狂了,所以我们不打算这样做。 相反,我们将记录如果您想要脚本元素 在 ng:include 或 ng:view 模板中,您应该使用 jquery。

使用 jquery 演示 plunker

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 AngularJS 中,HTML 模板中包含的任何内联 javascript 代码都不起作用 的相关文章