在 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问题jqLite 应该以与 jQuery 相同的方式创建元素在结束这个问题之前,伊戈尔总结道:
这对于 jqlite 来说太疯狂了,所以我们不打算这样做。
相反,我们将记录如果您想要脚本元素
在 ng:include 或 ng:view 模板中,您应该使用 jquery。
使用 jquery 演示 plunker
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)