javascript – 用于角度1.2的debugInfoEnabled

Angular 1.3引入了一种新的 debugInfoEnabled()方法,可以提高性能,如果在 application config function
myApp.config(['$compileProvider',function ($compileProvider) {
    $compileProvider.debugInfoEnabled(false);
}]);

此外,Angular 1.3支持IE8.这对我来说是个问题,我的应用程序必须在IE8上运行.因此,我不能升级到角度1.3,必须生活在1.2.

有没有办法用角度1.2实现相同的功能?

特别是debugInfoEnabled()的至少一部分:

>在创建新的范围时,阻止创建ng范围/ ng隔离范围的CSS类
>不要使用ngBind,ngBindHtml或{{…}}插值将绑定数据和ng类CSS类附加到元素

作为一个可能的选择,我可以将angularjs仓库分叉并将功能返回到1.2.然后,使用fork维护上游的更新.

会感激任何指针.

解决方法

使用底层的DOM setAttribute方法来防止默认行为.我在另一个答案中编辑了这个plunker:

http://plnkr.co/edit/cMar0d9IbalFxDA6AU3e?p=preview

做以下事情:

>克隆DOM setAttribute原型方法
>通过检查调试属性来覆盖它
>返回false为ng调试属性
>返回正常

使用如下:

/* Clone the original */
HTMLElement.prototype.ngSetAttribute = HTMLElement.prototype.setAttribute;

/* Override the API */
HTMLElement.prototype.setAttribute = function(foo,bar) {
/* Define ng attributes */ 
var nglist = {"ng-binding": true,"ng-scope":true,"ng-class":true,"ng-isolated-scope":true};

console.log([foo,bar]);

/* Block ng attributes; otherwise call the clone */
if (nglist[foo]) 
  return false; 
else if (JSON.stringify(nglist).match(foo) )
  return false;
else
  return this.ngSetAttribute(foo,bar);
}

用IE8替换元素的HTMLElement.

参考

> CSS classes used by angular
> Prototypes,Constructor Functions,and Taxidermy
> AngularJS IE8 Shim
> AngularJS IE8 Builds
> Document Object Model Prototypes
> Document Object Model Prototypes,Part 2: Accessor (getter/setter) Support
> What’s New in Internet Explorer 9

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


kindeditor4.x代码高亮功能默认使用的是prettify插件,prettify是Google提供的一款源代码语法高亮着色器,它提供一种简单的形式来着色HTML页面上的程序代码,实现方式如下: 首先在编辑器里面插入javascript代码: 确定后会在编辑器插入这样的代码: <pre
这一篇我将介绍如何让kindeditor4.x整合SyntaxHighlighter代码高亮,因为SyntaxHighlighter的应用非常广泛,所以将kindeditor默认的prettify替换为SyntaxHighlighter代码高亮插件 上一篇“让kindeditor显示高亮代码”中已经
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面
如何用js控制图片放大缩小
JS怎么获取当前时间戳
JS如何判断对象是否为数组
JS怎么获取图片当前宽高
JS对象如何转为json格式字符串
JS怎么获取图片原始宽高
怎么在click事件中调用多个js函数
js如何往数组中添加新元素
js如何拆分字符串
JS怎么对数组内元素进行求和
JS如何判断屏幕大小
js怎么解析json数据
js如何实时获取浏览器窗口大小
原生JS实现别踩白块小游戏(五)
原生JS实现别踩白块小游戏(一)