angularjs在1.3之后的版本都是选择放弃对IE8及更低IE版本的支持,但是就目前的开发形式来看,IE8的使用客户还是蛮多的,最近有个项目要求尽量使用angularjs来写,项目一开始,就遇到了这个兼容低版本IE 让人头疼的问题,经过在网上的各种寻找,没找到一篇能让我这个angularjs新手很快解决问题的文,最后是综合了各种文,各种分析总结才解决的
首先是版本问题,第一个要解决的就是版本问题,高版本的angularjs已经完全放弃IE了,所以angularjs要选择1.3之前的版本。下面将我在项目中用到的版本罗列下
angularjs --v1.2.30
ui-router --v0.4.3
jQuery --v1.9.1
bootstrap --v3.3.7
第二个需要做的事就是
1、需要引入两个js插件html5shiv.min.js 和 respond.js ,用于让 IE8 支持 HTML5元素和媒体查询。
2、为了让IE7兼容angularjs,你需要为IE7及以下浏览器添加JSON.stringify方法。json2 /douglascrockford/JSON-js
3、在写ng-app的地方加上id=”ng-app”
第三点就是在开发中需要注意到的一些地方
1、为了兼容IE低版本,自定义指令不要采用元素名的形式,最好用属性的形式
2、$http1.5版本前和1.5版本后的写法是不一样的,在这里需要采用如下的写法:
var app = angular.module('myApp', []);app.controller('siteCtrl', function($scope, $http) {$http.get("/try/angularjs/data/sites.php").success(function (response) {$scope.names = response.sites;});});
3、bootstrap需要注意到的地方就是使用栅格系统时,col-md-在IE8里并不起作用,这时需要用col-xs- 就行了