对于前端而言,现在很多框架组件都不再支持IE8,然而拗不过需求,却总有很多时候必须要支持IE8。AngularJS作为一个比较好用的前端MVC框架,能有效地提高我们的开发效率。然而随着版本的更新,AngularJS不再支持IE8,这时候就有人开始捣鼓IE8兼容了,比如这个。
下面来简单讲一下用法:
1、html的title中加入如下Meta:
<Metahttp-equiv="X-UA-Compatible"content="IE=edge"/>
2、引入js:
<!--[ifIE8]> <scriptsrc="//cdnjs.cloudflare.com/ajax/libs/es5-shim/4.0.5/es5-shim.min.js"></script> <scriptsrc="//code.jquery.com/jquery-1.11.1.min.js"></script> <style> .ng-hide{ display:none!important; } </style> <![endif]--> <scriptsrc="angular.js"></script>
这个ie8的兼容版解决了很多AngularJS在IE8中的兼容问题,但是在IE8下的兼容依然会存在一些问题,比如文字图标在IE8中使用的时候会存在需要反流才能显示的情况,很多基于AngularJS的组件在IE8下的异常等等。
3、自定义指令
比如自定义指令如下:
varapp=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>