如何在IE8中使用AngularJS应用程序?

时间:2014-10-09 17:47:27

标签: javascript angularjs internet-explorer internet-explorer-8

我正在尝试在IE8上使用我的AngularJS应用程序。我正在使用AngularJS v1.2.16。利用(http://www.browserstack.com/)进行测试,我可以看到,当我将堆栈设置为IE8时,它都会崩溃。我正在关注this link from angular docs以使该应用程序正常工作,但是当我注入此行

<html xmlns:ng="http://angularjs.org" id="ng-app" ng-app="myApp">

浏览器不会在页面上显示任何对象(仅显示页眉和页脚),但仍无法在IE上运行。这是因为上面的这段特定代码

ng-app="myApp"

我想知道这是否是我无法让我的应用程序在IE8上运行的原因。我已经实现了链接提供的所有指示。但是,我不确定我是否完全符合document.createElement();组件。我所做的是将我已使用的所有ng-...标记添加到列表中,如图所示。

<!--[if lte IE 8]>
  <script>
    document.createElement('ng-include');
    document.createElement('ng-pluralize');
    document.createElement('ng-view');
    document.createElement('ng-click');
    document.createElement('ng-repeat');
    document.createElement('ng-show');

    // Optionally these for CSS
    document.createElement('ng:include');
    document.createElement('ng:pluralize');
    document.createElement('ng:view');
    document.createElement('ng:click');
    document.createElement('ng:repeat');
    document.createElement('ng:show');
  </script>
<![endif]-->

第一个问题可能是什么原因,我是否正确地做了第​​二个组件?是否有更好/更简单的方法让我的应用程序在IE8中运行?如果不是,我如何将它们重定向/路由到不同的视图并将其引导至upgrading their browser?谢谢。


EDIT1: 按照KevinB的建议我使用IE10开发工具,切换到IE8浏览器模式以查看js错误,我收到这两个错误

SCRIPT438: Object doesn't support property or method 'addEventListener' 
jquery.js, line 3425 character 4
SCRIPT5022: Bootstrap's JavaScript requires jQuery 
bootstrap.js, line 7 character 38

livepo建议这似乎是jQuery的一个错误(2.xx不支持IE8,必须是1.11.x)。

将jQuery版本更改为1.11.1并删除了错误,但视图仍然搞砸了。这是因为bootstrap compatibility与IE8。

结论:这一个问题导致了许多不同的问题,因此将开启一个新问题以供进一步讨论。感谢大家对此的支持。

1 个答案:

答案 0 :(得分:2)

希望这篇SO文章会有所帮助。 Why does ng-class="ng-app" break AngularJS?

建议将 class =“ng-app:myApp” 添加到html标记中。请仔细阅读本文中的建议,看看它是否有帮助。

请注意,只有在使用自定义标记时才需要document.createElement()调用的唯一原因,例如

<my-custom-tag></my-custom-tag> 

使用

<div my-custom-tag></div>

将消除整个部分的需要。

编辑:忘记'代码'部分