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 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("http://www.runoob.com/try/angularjs/data/sites.php") .success(function (response) {$scope.names = response.sites;}); });
3、bootstrap需要注意到的地方就是使用柵格系統時,col-md-在IE8里並不起作用,這時需要用col-xs- 就行了