AngularJS兼容IE的处理(官方文档不全面)

AngularJS
最近在学些AngularJS,感觉挺强大的。
但是如果想投入到生产环境中,还需要考虑到IE6,7的兼容问题。

官方文档提到如何兼容IE了,但是即使全部按照文档里说的做,其实还是不能做到在IE6,7下运行。

经过各种实践,在这里给出一个补充:
需要在html标签上添加id=”ng-app”和class=”ng-app:APPNAME”,于是一个标准的ng-app的标签应该是:(app名为myapp为例)

##注意下面的“HTMLTAG”必须是合法的html标签,永远不要使用自定义标签(ng-view改成<div ng-view>),否则依然不兼容IE
<html xmlns:ng="http://angularjs.org">
......
<HTMLTAG ng-app="myapp" class="ng-app:myapp" id="ng-app">
   ....
</HTMLTAG>
.....
</html>

这样就行了,以上是唯一的和官网说明不同的地方.

另附官网文档所说的让IE兼容JSON2和HTML5标签的JS在这,直接引用进head标签里就行了里就行了(这两个JS也是必要的)

<script src="http://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.6.2pre/html5shiv.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/json2/20121008/json2.js"></script>

随便做了一个demo,兼容IE67:
http://tools.regou.me/angularJS.html

2013.6.22更新
目前我在正式的生产环境中,用AngularJS+jQueryMobile+PhoneGap在做一个B2B商城APP
分享了点AngularJS用户手机APP开发的心得:
blog.regou.me/?p=790

2013.12.16更新
我看了下,官方文档已经做好了补充,现在可以完全以官网文档为准了。
AngularJS 1.3.0开始,将不再支持IE8和IE8以下的浏览器,所以,别再挣扎了

《AngularJS兼容IE的处理(官方文档不全面)》上的9个想法

    1. 应该是可以的,你可以参照我给出的demo。另外如果你用了route,那么在IE tester里将可能不正常,
      再不行就只能降级angularJS的版本了。
      AngularJS团队未来不打算兼容ie9以下的浏览器了,而当前版本官方只测试过IE8,IE8以下根本没经历测试。

  1. demo中是用html5做的,我这边添加了

    var myapp = angular.module(“myapp”,[]);

    here, {{1+1}}

    Load…

    添加以后ie9下面都不兼容了。。。

    1. htmltag 是一个合法并可被IE识别的html标签,我用“htmltag”代替了而已,你可不能把htmltag写进去啊

发表评论

邮箱地址不会被公开。