如何让我的 Angular 应用程序在 ie8 中呈现?

Posted

技术标签:

【中文标题】如何让我的 Angular 应用程序在 ie8 中呈现?【英文标题】:How can I get my angular app to render in ie8? 【发布时间】:2014-09-04 20:42:52 【问题描述】:

我无法让我的应用程序在 ie8 中呈现。我已经包括了我能想到的每一个垫片/刀。我的html有问题吗?我的应用程序在 ie9 以上的所有浏览器中都能完美运行。

感谢任何帮助,下面是我的 index.html 文件:

<!doctype html>
<html class="no-js" xmlns:ng="http://angularjs.org" id='ng-app' ng-app="PredictionApp" >
  <head>
    <meta charset="utf-8">
    <title>Prediction App</title>
    <!-- Place favicon.ico and apple-touch-icon.png in the root directory -->
    <!-- build:css(.) styles/vendor.css -->
    <!-- bower:css -->
    <!-- endbower -->
    <!-- endbuild -->
    <!-- build:css(.tmp) styles/main.css -->
    <!-- <link href='http://fonts.googleapis.com/css?family=Roboto:500,300|Crimson+Text:400,600,400italic' rel='stylesheet' type='text/css'> -->
    <link rel="stylesheet" href="ionicons/css/ionicons.min.css">
    <link rel="stylesheet" href="bower_components/angular-rangeslider/angular.rangeSlider.css">
    <link rel="stylesheet" href="bower_components/rickshaw/rickshaw.css">
    <link rel="stylesheet" href="bower_components/allmighty-autocomplete/style/autocomplete.css">
    <link rel="stylesheet" href="main.css">
    <!-- endbuild -->

    <!--[if lt IE 9]>
    <script src="bower_components/html5shiv/dist/html5shiv.min.js"></script>
    <script src="bower_components/es5-shim/es5-shim.min.js"></script>
    <script src="bower_components/json3/lib/json3.min.js"></script>
    <script src="bower_components/r2d3/r2d3.js" charset="utf-8"></script>
    <script type="text/javascript" src="https://getfirebug.com/firebug-lite-debug.js"></script>
    <![endif]-->

    <script src="bower_components/jquery/dist/jquery.js"></script>
    <script src="bower_components/angular/angular.min.js"></script>
    <script src="bower_components/angular-animate/angular-animate.min.js"></script>
    <script src="bower_components/angular-ui-router/release/angular-ui-router.min.js"></script>
    <script src="bower_components/angular-cookies/angular-cookies.min.js"></script>
    <script src="bower_components/angular-rangeslider/angular.rangeSlider.js"></script>
    <script src="bower_components/moment/moment.js"></script>
    <script src="bower_components/lodash/dist/lodash.compat.min.js"></script>
    <script src="bower_components/clndr/clndr.min.js"></script>
    <script src="bower_components/restangular/dist/restangular.js"></script>
    <script src="bower_components/d3/d3.js"></script>
    <script src="bower_components/rickshaw/rickshaw.js"></script>
    <script src="bower_components/allmighty-autocomplete/script/autocomplete.js"></script>
    <script src="bower_components/allmighty-autocomplete/script/app.js"></script>

    <script src="application.js"></script>

  </head>
  <body>
    <!--[if lt IE 7]>
      <p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
    <![endif]-->
    <div class='app-container' ui-view autoscroll="true"></div>

</body>
</html>

【问题讨论】:

您是否在为指令使用自定义标签?是否抛出任何错误? 我正在使用 firebug lite 在 ie8 的 VM 环境中进行调试,抛出了一些错误,但它们非常模糊,我无法确定。 1是Jquery未定义,另一个是“对象不支持此属性或方法”。但是,我正在使用自定义元素指令,而不是在默认路由中,因此对于主页来说应该不是问题。甚至没有任何 html 进入 ui-view 内的 DOM。 好吧,我用较早的版本解决了jquery的问题。现在我仍然得到一个预期的标识符或字符串错误。 确保您的所有插件/依赖项都与 IE8 兼容。确保你没有调用像console 这样的东西,除非你将它们指定为一个函数。尝试使用jslint.com 来帮助查找诸如尾随逗号1:one,2:two, 之类的错误信息。 @Dylan 感谢修复了该错误,但现在我遇到了注入器模块错误。 【参考方案1】:

他们没有正式支持的拉角 1.3。检查链接https://docs.angularjs.org/guide/ie 如果您支持 IE 8,您也可以尝试 Angular 1.2。

【讨论】:

以上是关于如何让我的 Angular 应用程序在 ie8 中呈现?的主要内容,如果未能解决你的问题,请参考以下文章

Angular 4 - 如何让我的复选框更改变量的值?

我由Angular转向React,为啥

Angular $q .catch() 方法在 IE8 中失败

我由Angular转向React,为啥

如何在带有 D3 的 Angular 中使用“this”?

IE8 是不是有像 6 或 7 这样的渲染错误?