我正在尝试在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。
结论:这一个问题导致了许多不同的问题,因此将开启一个新问题以供进一步讨论。感谢大家对此的支持。
答案 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>
将消除整个部分的需要。
编辑:忘记'代码'部分