【问题标题】:Angular JS routing doesn't work for IE 6Angular JS 路由不适用于 IE 6
【发布时间】:2014-05-22 00:39:30
【问题描述】:

我目前正在研究使用 AngularJS (v1.2.16) 进行项目的能力,该项目必须与我们的老牌 IE 6+ 兼容。

我正在使用这些不同的环境测试 Angular 教程,我的第一个棘手问题在于(与许多人一样)Angular 路由(第 7 步)。 IE 7+ 一切正常,这是一个好的开始,但我必须让它与 IE6 一起工作,即使通过另一种解决方案避免角度路由也是如此。

IE6 上的当前行为:所有被询问的页面都被重定向到其他页面。

我的问题:有人在 IE6 上成功了吗? (我知道 Angular 团队不再对其进行测试,尽管它可以在 IE7+ 上运行并添加了一些代码)

谢谢!

这是我的代码: index.html:

<!doctype html>
    <html lang="en" xmlns:ng="http://angularjs.org"  id="ng-app" ng-app="phonecatApp" >
    <head>

    <!--[if lte IE 7]>
        <script src="js/json2.js"></script>
    <![endif]-->
    <!--[if lte IE 9]>
        <script src="js/es5-shim/es5-shim.js"></script>
    <![endif]-->
    <!--[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]-->
  <meta charset="utf-8">
  <title>Google Phone Gallery</title>
  <link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.css">
  <link rel="stylesheet" href="css/app.css">
  <script src="bower_components/angular/angular.js"></script>
  <script src="bower_components/angular-route/angular-route.js"></script>
  <script src="js/app.js"></script>
  <script src="js/controllers.js"></script>
  <script src="js/filters.js"></script>
</head>
<body>

  <div ng-view></div>

</body>
</html>

app.js:

var phonecatApp = angular.module('phonecatApp', [
  'ngRoute',
  'phonecatControllers',
  'phonecatFilters'
]);

phonecatApp.config(['$routeProvider',
  function($routeProvider) {
    $routeProvider.
      when('/phones', {
        template: '<div ng-include src="\'partials/phone-list.html\'"></div>',
        controller: 'PhoneListCtrl'
      }).
      when('/lol', {
      template: '<div ng-include src="\'partials/kiddin.html\'"></div>',
        controller: 'PhoneDetailCtrl'
      }).
      otherwise({
        redirectTo: '/phones'
      });
  }]);

kiddin.html:

<span>Kidding me!</span>

电话列表.html:

<div class="container-fluid">
  <div class="row">
    <div class="col-md-2">
      <!--Sidebar content-->

      Search: <input ng-model="query">
      Sort by:
      <select ng-model="orderProp">
        <option value="name">Alphabetical</option>
        <option value="age">Newest</option>
      </select>

    </div>
    <div class="col-md-10">
      <!--Body content-->

    </div>
  </div>
</div>

【问题讨论】:

  • 您似乎已经看过 Angular 的 IE Compatibility page 和 IE7 的解决方法。祝你 IE6 好运...
  • 谢谢,我会在找到解决方案后及时更新

标签: angularjs internet-explorer-8 internet-explorer-7 internet-explorer-6 angularjs-routing


【解决方案1】:

AngularJS 不支持 IE6。

Angular 1.2 支持 IE8。

Angular 1.3 支持 IE9 及更高版本。

他们的Internet Explorer Compatibility page的更多细节

【讨论】:

  • 没有明确声明 Angular 在其兼容性页面上不支持 IE6。提到了对 IE7 的支持以及解决方法,所以我认为您的答案不正确
  • @GregWoods - 没有明确声明 Angular 不支持 IE5(或 Mosaic/Netscape),但我猜 Angular 也不支持这些浏览器中的任何一个......
  • 好点。我自己(可能不正确)的假设是 IE6 与 IE7 密切相关,因此应该具有相似的兼容性级别。我的(有限的)测试证实,被强制使用 IE7 的代码也适用于 IE6——尽管这绝不是一次愉快的体验!
  • 你错了,根据文档,它说“我们不在 IE8 及以下版本上运行测试。AngularJS 功能的一个子集可能在这些浏览器上运行,但由你来测试并决定是否它适用于您的特定应用。”
  • @gmanolache - Angular 1.3 dropped support of IE8,但它在 1.2 中得到支持
猜你喜欢
  • 2019-01-09
  • 1970-01-01
  • 2017-06-24
  • 1970-01-01
  • 2014-07-07
  • 2019-04-08
  • 2018-12-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多