对于前端而言,现在很多框架组件都不再支持IE8,然而拗不过需求,却总有很多时候必须要支持IE8。AngularJS作为一个比较好用的前端MVC框架,能有效地提高我们的开发效率。然而随着版本的更新,AngularJS不再支持IE8,这时候就有人开始捣鼓IE8兼容了,比如这个

    下面来简单讲一下用法:

1、html的title中加入如下meta:

<meta http-equiv="X-UA-Compatible" content="IE=edge" />


2、引入js:

    <!--[if IE 8]>
        <script src="//cdnjs.cloudflare.com/ajax/libs/es5-shim/4.0.5/es5-shim.min.js"></script>
        <script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
        <style>
            .ng-hide {
                display: none !important;
            }
        </style>
    <![endif]-->
    <script src="angular.js"></script>


这个ie8的兼容版解决了很多AngularJS在IE8中的兼容问题,但是在IE8下的兼容依然会存在一些问题,比如文字图标在IE8中使用的时候会存在需要反流才能显示的情况,很多基于AngularJS的组件在IE8下的异常等等。


3、自定义指令

比如自定义指令如下:

var app = angular.module('myApp', []);
app.directive('mytable', [ function(){
    return {
        // scope: false, // 默认值,共享父级作用域
        // controller: function($scope, $element, $attrs, $transclude) {},
        restrict: 'AE', // E = Element, A = Attribute, C = Class, M = Comment
        template: "test"
    };
}])

该指令在ie中需要注意的是:

(1)指令名全小写

(2)html声明标签时不能直接用<mytable></mytable>,而必须是<div mytable></div>