Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.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
Javascript IE8中未定义AngularJS_Javascript_Internet Explorer_Internet Explorer 8_Angularjs - Fatal编程技术网

Javascript IE8中未定义AngularJS

Javascript IE8中未定义AngularJS,javascript,internet-explorer,internet-explorer-8,angularjs,Javascript,Internet Explorer,Internet Explorer 8,Angularjs,我正在开发一个使用AngularJs的大型应用程序 当我在IE8中查看页面时,我会看到超级漂亮的控制台错误,如对象不支持属性或方法“模块”,对象不支持属性或方法“小部件”,无法获取属性“控制器”的值:对象为null或未定义的,以及IE真的很糟糕,你不能告诉他们下载chrome吗? 在与它斗争了一段时间后,我决定记录angular的类型,控制台将未定义返回到该类型 在IE9、IE10和所有不那么糟糕的浏览器中,一切都如预期的那样工作 请帮忙 编辑: 在到达我的第一个控制器之前,angular似乎是

我正在开发一个使用AngularJs的大型应用程序

当我在IE8中查看页面时,我会看到超级漂亮的控制台错误,如
对象不支持属性或方法“模块”
对象不支持属性或方法“小部件”
无法获取属性“控制器”的值:
对象为null或未定义的
,以及
IE真的很糟糕,你不能告诉他们下载chrome吗?

在与它斗争了一段时间后,我决定记录angular的
类型
,控制台将
未定义
返回到该类型

在IE9、IE10和所有不那么糟糕的浏览器中,一切都如预期的那样工作

请帮忙

编辑


在到达我的第一个控制器之前,angular似乎是未定义的,所以我认为这与IESHEM无关。

我已经与IE8合作六个月了,感受一下你的痛苦吧

如果看不到你的代码,很难准确地说出哪里出了问题

这是我刚刚用IE8测试的一个非常基本的页面,供您比较:

<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=8">
    <meta charset="utf-8">
    <title>Prompt Detail View</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="">

    <!-- disable browser cache -->
    <meta http-equiv="cache-control" content="max-age=0" />
    <meta http-equiv="cache-control" content="no-cache" />
    <meta http-equiv="expires" content="0" />
    <meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
    <meta http-equiv="pragma" content="no-cache" />


    <!--[if lte IE 8]>
    <script>
        document.createElement('ng-include');
        document.createElement('ng-pluralize');
        document.createElement('ng-view');
        // Optionally these for CSS
        document.createElement('ng:include');
        document.createElement('ng:pluralize');
        document.createElement('ng:view');
    </script>
    <![endif]-->

    <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
    <!--[if lt IE 9]>
          <script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script>
        <![endif]-->

    <script src="js/jquery-1.7.2.min.js"></script>
    <script src="js/angular-1.0.2.js" ng:autobind></script>


<script>
var pageModule = angular.module('pageModule',[])
.controller('pageCtrl',function($scope) {
   $scope.foo = 'my foo'; 
});

</script>
</head>


<body>
    <div ng-app="pageModule"
        ng-controller="pageCtrl">
            {{foo}}
    </div>
</body>
</html>

提示详细视图
var pageModule=angular.module('pageModule',[])
.controller('pageCtrl',函数($scope){
$scope.foo='my foo';
});
{{foo}}

所以这完全是我的错(或者是几个月前启动这个应用程序的家伙)

我的应用程序控制器顶部有
var angular=angular | |{}
,IE8不同意这个声明


删除后一切正常。

我也遇到了同样的问题,我的IE9浏览器没有识别任何AngularJs标记,在尝试了所有操作后,我决定在服务器上运行html文件,结果成功了

简而言之,当我执行以下文件时,它不起作用

file:///C:/AngularJS/firstTest.html

当我在服务器中按如下方式执行文件时,它确实起了作用

var versionError=angular.module('versionError',[]) .controller('versionCtrl',函数($scope){ $scope.name='Shantha Moorthy K'; });

具有较低版本错误的AngularJS
{{name}}

超级漂亮?从未想过这样描述它……:)你结束了吗?jbabey:是的,我也实现了angular ui ieshiv.js,因为遵循该指南无法解决我的问题。你检查了文档模式了吗?看,谢谢!我在这里看到了一些我遗漏的东西,我会盲目地添加它们以期进步!是的,它起作用了。但别忘了,旧浏览器只支持Angular的旧版本。我使用1.2.4和IE8=)我想指出的是,为了使用angular,我从来都不喜欢发明标签。它是非语义和非标准的。当角度提供数据属性的方式时,为什么你会考虑走那个路线?在我看来,使用您自己的(和有角度的本地)自定义标记类似于使用flash。@dudewad-同意。我上面的帖子是为了基本的调试和理智check@Saike谢谢你的评论救了我。。。花了两个多小时才找到这个破碎的地方。我知道如果你想使用一些模块(比如ngResource),你必须有一个活动服务器。