angularjs兼容低版本IE浏览器(IE8)
angularjs在1.3之后的版本都是选择放弃对IE8及更低IE版本的支持,但是就目前的开发形式来看,IE8的使用客户还是蛮多的,最近有个项目要求尽量使用angularjs来写,项目一开始,就遇到了这个兼容低版本IE 让人头疼的问题,经过在网上的各种寻找,没找到一篇能让我这个angularjs新手很快解决问题的文,最后是综合了各种文,各种分析总结才解决的
首先是版本问题,第一个要解决的就是版本问题,高版本的angularjs已经完全放弃IE了,所以angularjs要选择1.3之前的版本。下面将我在项目中用到的版本罗列下
angularjs -- v1.2.30
requirejs ---2.1.20
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 https://github.com/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(url)
.success(function (response) {$scope.names = response.sites;});
});
3、bootstrap需要注意到的地方就是使用栅格系统时,col-md-在IE8里并不起作用,这时需要用col-xs- 就行了