Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS,包括HTML中的javascript_Javascript_Angularjs - Fatal编程技术网

AngularJS,包括HTML中的javascript

AngularJS,包括HTML中的javascript,javascript,angularjs,Javascript,Angularjs,有人能解释一下为什么会这样: <!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

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

<!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>

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

您可以尝试类似的方法

<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>

函数getConfig(){
var元素=document.createElement(“脚本”);
element1.src=“../Global/config.js”;
document.body.appendChild(元素);
}
if(window.addEventListener)
addEventListener(“加载”,getConfig,false);
else if(窗口附件)
attachEvent(“onload”,getConfig);
else window.onload=getConfig;

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

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

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

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

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


函数getConfig(){
var element1=document.createElement(“脚本”);
element1.src=“../config.js”;
文件.正文.附件(要素1);
}
如果(document.readyState==“complete”){getConfig();}

谢谢大家。:)

问题是顺序,我认为在第二种情况下,config.js在angular.js之前加载,这就是我的想法。但是有没有办法像我在第二个示例中尝试的那样加载它并使其工作?@Sinan我真的很好奇-第二个方法的优点是什么,一般来说?@Steve我不认为有什么,我只是尝试用html动态加载我的脚本,以为它会这样工作,我只是好奇问题是什么?你确定你没有在实际测试中添加“ng应用程序”吗?因为在这里的示例中没有任何ng应用程序。。。因为如果有,可能会发生错误。@NoypiGilas必须等待2天,因为这是我自己的答案。
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) 
<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>
    <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>