当前位置: 首页 > 面试题库 >

在AngularJS中,HTML模板中包含的所有内联javascript代码均不起作用

江建明
2023-03-14
问题内容

在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相同的方式创建元素,在结束问题之前,Igor会使用jQuery进行总结:

对于jqlite来说,这太疯狂了,因此我们不会这样做。相反,我们将记录文档,如果您希望在ng:include或ng:view模板中包含脚本元素,则应使用jquery。

用jQuery演示插件



 类似资料:
  • 问题内容: 我认为我在这里缺少一些简单(重要)的东西。我正在使用一个包含的模板,该模板包含映射到某个值的输入: 控制器: 警报$ scope.testvalue的值始终显示初始值,而不显示更新后的值(当您输入输入内容时)。帮我欧比旺。您是我们唯一的希望。 小提琴:http://jsfiddle.net/h5aac/ 问题答案: 绑定到原语而不是对象太普遍了。字符串的值被传递,而不是对对象的引用。如

  • 问题内容: 我想加载一个内联视图模板。 我将模板包装在类型为的脚本标签中,并将ID设置为。这是我的模块配置 它在控制台窗口中告诉我,这意味着它正在寻找该名称的文件。 我的问题是:如何配置路由以使用嵌入式模板? 更新:这是我的服务器渲染的DOM的样子 问题答案: Ody,您的方向正确,唯一的问题是标记位于使用指令的DOM元素 之外。如果将其移至元素,则内联模板应该可以使用。

  • 正如所有评论我已经改变了我的代码。现在的事情是,当我运行我下面的PHP代码作为单独的文件它运行像魅力: $conn=new mysqli($主机名,$用户名,$密码,$数据库); 但是当我试图将其包含到html代码中时,它不起作用: $conn=new mysqli($主机名,$用户名,$密码,$数据库);

  • 我使用全堆栈Thymeleaf(Springmvc,安全,布局方言,webflow)在一个中型网络应用程序。 好啊既然我们在html模板中放了这么多代码,那么最好包含生成的html文件中没有的源代码注释。 我们如何做到这一点?

  • 问题内容: 在以下情况下如何使用包含。目的是在html(部分)文件中使用标记,而不是在模板中(在指令内)定义标记。 我在这里找到了一个很棒的树指令。( 来源)原文: http //jsfiddle.net/n8dPm/ 我没有在指令中定义模板,而是尝试使用包含在内的内容。我还将Angular更新为1.2.0.rc2。更新时间:http://jsfiddle.net/aZx7B/2/ 低于错误 Ty

  • 问题内容: 我在主布局文件中有这个 我的目录结构中有header.html部分模板。 如何在我的应用程序中包含此模板?我认为angular在处理完控制器后会自动包含模板,但是它不起作用。 标头节点应替换为此文件的内容。 问题答案: 包含来自外部文件的模板/ html片段的一种方法是使用指令(doc)。 要么