最近负责公司的一个国外项目,老外指定要用angular,并且要兼容到IE7。
项目使用的是Angular版本是1.2.27,为了能在IE7下跑,需要做如下配置
1. 加载json2.js
2. 加载html5shiv.js
3. 加载angular相关文件
4. 加载angular-ie7-support文件 (这个文件主要解决ng的$sceProvider的问题)
5. 加载你的angular app
配置完成,IE7下已经能正常运行,但是发现指令没有被正确显示出来,而IE8以上却都运行正常。
最为诡异的是没有抛出任何异常信息,看来IE7还在做怪。。。
由于项目是用Browserify做构建,一开始怀疑是Browserify的问题,经过测试,在IE7下Browserify正常运行。
后来经过排查,发现是指令模板的问题,举个例子:
<div>
<img ng-src="item.imagePath" class="{{item.iconClass}}"/>
</div>
上面的模板中,element的attribute绑定在IE7下不能直接使用 class="{{item.iconClass}}",改用 ng-class="item.iconClass" 就运行正常了!!
我只能说两个字:坑啊!
草拟此文,希望能帮其它同学绕开这个坑。
PS: 尊重他人原创,转载请务必注明来自 http://www.cnblogs.com/Raoh/p/4225454.html