'angular'在IE10上未定义

时间:2015-01-07 05:56:30

标签: angularjs internet-explorer requirejs wamp

我开发了一个AngularJs,RequireJs应用程序,PHP作为后端,托管在WAMP服务器上。 服务器机器名称是" ICC-Server"和别名是" iccportal"和域名是" ip.bombay"。

当我在IE10和Chrome上使用http://iccportal.ip.bombay访问门户时,它运行良好。

但如果我尝试访问没有域名的同一门户网站(http://iccportal),我会收到以下错误。

SCRIPT5009:' angular'未定义 app.js,第4行1个字符

SCRIPT5009:' angular'未定义 main.js,第6行5字符

IE 10 Error

我不确定是否存在requirejs或WAMP问题。 请指导。

以下是main.js和app.js

的代码段

Main.js

require(["app"], function (app) {
    // Following line is more important else angular js will not work
    angular.bootstrap(document.getElementsByTagName("body")[0], ["wkPortal"]);
});

app.js

(function (define, angular) {
    "use strict";
    // enable/disable logs
    define(["components/home/homeController","components/home/homeService"], function (homeController, homeService) {
            var app = angular.module("wkPortal", ["ngRoute", "ngSanitize"]);
            // register home controller
            app.controller("HomeController", homeController);
            // register home service
            app.service("HomeService", homeService);
            return app;
        }
    );

}(define, angular));

的index.html

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
  <link rel="shortcut icon" href="favicon.ico" type="image/ico"/>
  <title>ICC Portal</title>
  <!-- CSS ===================== -->
  <!-- load bootstrap -->
  <link rel="stylesheet" href="assets/css/bootstrap.css">
  <link rel="stylesheet" href="assets/css/bootstrap-theme.css">
  <link rel="stylesheet" href="assets/css/MetroJs.css">
  <link rel="stylesheet" href="assets/css/app.css">
</head>
<body>
<div ng-view></div>
<!-- JS -->
<!-- load jquery -->
<script src="assets/js/jquery-2.1.0.js" type="application/javascript"></script>
<script src="assets/js/jquery-ui.js" type="application/javascript"></script>
<script src="assets/js/jquery.validate.js" type="application/javascript"></script>

<!-- Bootstrap -->
<script src="assets/js/bootstrap.js" type="application/javascript"></script>

<!-- load angular -->
<script src="assets/js/angular.min.js" type="application/javascript"></script>
<script src="assets/js/angular-animate.js" type="application/javascript"></script>
<script src="assets/js/angular-cookies.js" type="application/javascript"></script>
<script src="assets/js/angular-route.js" type="application/javascript"></script>
<script src="assets/js/angular-touch.js" type="application/javascript"></script>
<script src="assets/js/angular-sanitize.js" type="application/javascript"></script>
<script src="assets/js/MetroJs.js" type="application/javascript"></script>


<!-- application app -->
<script data-main="app/main" src="assets/js/require.js"></script>
</script>
</body>
</html>

谢谢, Indrajit

2 个答案:

答案 0 :(得分:2)

问题可能是由较旧的文档模式引起的。 尝试使用开发人员工具(F12),并手动更改文档模式。 如果可行,请检查您的网站强制执行旧文档模式的原因。 可能的原因可能是HTML头部分中的以下行:

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

Internet Explorer如何在文档模式之间进行选择:Link

答案 1 :(得分:0)

如果您使用的是RequireJS,则不应显式导入AngularJS。在这种情况下,Angular应该由RequireJS加载,您应该手动引导应用程序。谷歌有点关于它,你会找到解决方案。