angularjs1+requirejs+ bootstrap+ jQuery低版本配合兼容ie8+浏览器

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- 就行了