AngularJS не определен в IE8

Я работаю над массовым приложением, которое использует AngularJs.

когда я просматриваю страницу в IE8, я получаю супер изящные ошибки консоли, такие как Object doesn't support property or method 'module', Object doesn't support property or method 'widget', unable to get value of the property 'controller': object is null or undefined и IE really sucks, cant you just tell them to download chrome?

после борьбы с ним некоторое время я решил войти в typeof angular, к которому вернулась консоль undefined.

все работает так, как ожидалось в IE9, IE10 и всех браузерах, которые не сосут.

пожалуйста помогите!

редактировать:

кажется, что угловой undefined прежде чем он доберется до моего первого контроллера, поэтому я не думаю, что это связано с ieshim ...

4 ответов


Я работаю с 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 angular = angular || {} вверху IE8 не согласился с этим заявлением.

после удаления все хорошо.


У меня также была та же проблема, мой браузер IE9 не распознал тег AngularJs, попробовав все, что я решил запустить html-файл на сервере, и это сработало.

чтобы собрать описание, Когда я запустил файл следующим образом он не работает

файл:///C: / AngularJS / firstTest.HTML-код

когда я выполнил файл на сервере следующим образом, он работал

http://localhost:7001/AngularJS/firstTest.HTML-код


var versionError = angular.module('versionErrors', [])
  .controller('versionCtrl', function($scope) {
    $scope.name = 'Shantha Moorthy K';
  });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular.min.js"></script>
<!DOCTYPE html>
<html lang="en">

<head>
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  <meta charset="utf-8">
  <title>AngularJS with Lower version Error's</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>


<body>
  <div ng-app="versionErrors" ng-controller="versionCtrl">
    {{name}}
  </div>
</body>

</html>

объект не поддерживает свойство или метод "module"

' Если вы используете AngularJS + более низкую версию IE (8), пожалуйста, включите content="IE=edge".

после включения, что вы преодолеете ниже ошибки<.>

  1. объект ожидается
  2. объект не поддерживает свойство или метод модуль'" ##