AngularJS,包括HTML中的javascript

AngularJS including javascript in HTML

本文关键字:中的 javascript HTML 包括 AngularJS      更新时间:2023-09-26

有人能解释一下为什么这样做吗:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" ng-app="appLogin">
<head>
    <script src="../Scripts/jquery-2.1.0.min.js"></script>
    <script src="../Scripts/angular.min.js"></script>
    <script src="../Global/config.js"></script>
</head>
<body>
</body>
</html>

但是当我尝试像这样添加config.js脚本时:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" ng-app="appLogin">
<head>
    <script src="../Scripts/jquery-2.1.0.min.js"></script>
    <script src="../Scripts/angular.min.js"></script>
    <script>
        var element1 = document.createElement("script");
        element1.src = "../Global/config.js";
        document.head.appendChild(element1);
    </script>
</head>
<body>
</body>
</html>

我得到:

Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.2.13/$injector/modulerr?p0=appLogin&p1=Error%….c%20(http%3A%2F%2Flocalhost%3A49723%2FScripts%2Fangular.min.js%3A17%3A431) 

appLogin是我在config.js中定义的angular模块。在这两种情况下,当我在浏览器中使用开发工具时,我都会看到脚本已加载,但由于某种原因,第二种方法不起作用?

第二个示例尝试异步下载和创建模块。

因此,当angular尝试引导时,"appLogin"可能还不存在。

与第一个示例不同,浏览器等待script标记完成。因此,文档的就绪事件尚未启动。

我记得,当就绪事件被触发时,自动引导就开始了。

我现在拿到了。正如大家提到的,问题是appLogin还不存在。我使用document.readyState():解决了我的问题

    <script type="text/javascript">
    function getConfig() {
        var element1 = document.createElement("script");
        element1.src = "../config.js";
        document.body.appendChild(element1);
    }
    if (document.readyState === "complete") { getConfig(); }
</script>

谢谢大家。:)

您可以尝试类似的东西

<script type="text/javascript">
  function getConfig() {
   var element = document.createElement("script");
   element1.src = "../Global/config.js";
   document.body.appendChild(element);
  }
  if (window.addEventListener)
   window.addEventListener("load", getConfig, false);
  else if (window.attachEvent)
   window.attachEvent("onload", getConfig);
  else window.onload = getConfig;
</script>