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

AngularJS:如何在ng-include内制作角度加载脚本?

周滨海
2023-03-14
问题内容

嘿,我正在建立一个有角度的网页。问题是已经有一些东西没有角度了,我也必须包括它们

问题是这样的。

我的main.html中有这样的内容:

<ngInclude src="partial.html">
</ngInclude>

我的partial.html有这样的东西

<h2> heading 1 <h2>
<script type="text/javascript" src="static/js/partial.js">
</script>

我的partial.js与angularjs无关。nginclude工作正常,我可以看到html,但根本看不到正在加载的javascript文件。我知道如何使用firebug
/ chrome-dev-tool,但是我什至看不到正在发出的网络请求。我究竟做错了什么?

我知道angular对脚本标签有一些特殊的含义。我可以覆盖它吗?


问题答案:

从1.2.0-rc1
+(Github问题)开始,可接受的答案将不起作用。

这是由endorama创建的快速修复:

/*global angular */
(function (ng) {
  'use strict';

  var app = ng.module('ngLoadScript', []);

  app.directive('script', function() {
    return {
      restrict: 'E',
      scope: false,
      link: function(scope, elem, attr) {
        if (attr.type === 'text/javascript-lazy') {
          var code = elem.text();
          var f = new Function(code);
          f();
        }
      }
    };
  });

}(angular));

只需添加此文件,将ngLoadScript模块作为应用程序依赖项加载,并type="text/javascript- lazy"作为脚本的类型即可将其延迟加载到局部中:

<script type="text/javascript-lazy">
  console.log("It works!");
</script>


 类似资料:
  • 问题内容: 当用作标题时,如果地址(文件路径)不存在,如何捕获错误? 我完成了一个的内部,有点像这样: ContentCtrl : ContentView : 当我使用addr不存在:/ home /#/ content / profile_asdfa时,角度只是在循环中获取资源。因此,当哈希中没有模板文件时,我需要捕获ng-include错误。有谁能够帮我 ?谢谢! 问题答案: 在源代码中查找n

  • 问题内容: 我有一些特定于视图的脚本。但是,当angularjs加载视图时,该脚本似乎没有执行。 Index.html Main.html- 在ng-view下加载 在此示例中,当页面加载时,我看到网站上印有一个基本的hello世界。但是,我没有弹出任何消息说“你好,约翰”。 知道为什么我无法加载特定于某个视图的脚本吗? 额外信息 app.js 控制器/main.js 问题答案: 这就是 jqLi

  • 问题内容: 我有一个控制器,我写的,我在多个地方使用我的应用程序和,就像这样: 在控制器/模板中,我希望该值存在,并且整个事情都围绕着这个想法建立。不过,现在,我需要以稍微不同的方式使用控制器,而无需使用,但仍然需要能够传递。我看到并认为它可以满足我的需要,例如: 但这似乎不起作用。任何人都有任何想法如何在这样的单个实例中为范围传递变量? 编辑:在此上方的控制器正在加载和值,如下所示: 问题答案:

  • 问题内容: 我使用以下代码将模板包括到我的主文件中。 我的 activity.html 像这样, 但是javascript并没有随模板一起加载 。 我在SO中发现了一些与此问题相关的问题,但找不到有效的解决方案。答案之一是在主文件中的angularjs上方加载jquery,以便脚本标记将被接受。但没有发现它起作用。 问题答案: 我在ng-include里面的加载脚本中找到了这个答案,不幸的是那里没

  • 问题内容: 什么是检测html加载结束的最佳方法?我想编写一些在加载完成后运行的代码。 问题答案: 有两种方法可以检测何时完成加载,具体取决于您的需要: 1)通过属性- 用于内联表达式。例如: 2)通过事件的是发射-为应用范围的处理。例如: 完成内容加载后

  • 问题内容: 我试图将模板文件作为我为启动googlemapsapi而编写的服务中InfoWindow的内容包括在内: 但是,将Angular 插入InfoWindow时似乎没有处理(通过DevTools检查代码时,插入的代码是)。 我希望Angular在将include插入到InfoWindow中之前对其进行预处理,但是可惜没有。 我想做的事可能吗? 我在想,在将模板传递给之前,必须以某种方式对其