对于前端而言,现在很多框架组件都不再支持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>