使用此新版本,ng-grid功能停止工作:
症状:
单击一行时,该行不会突出显示
运行一些测试后,我设法从零重现问题:
>创建一个需要ng-grid 2.0.14和ngAnimate的角度应用程序.
>使用旧的Google Chrome版本,该行正确突出显示.
使用新版Google Chrome,该行不会突出显示(尽管已选中)
我创造了两个掠夺者:
Plunkr 1:没有ngAnimate的App
http://plnkr.co/edit/2pSBX9K0QaeaSihMKnGG?p=preview
选择行时,无论Chrome版本如何,该行都会突出显示
Plunkr 2:带有ngAnimate的应用程序
http://plnkr.co/edit/hyRO4fTwglSCL8KCTgHA?p=preview
选择行时,该行会在旧的Chrome版本中突出显示,但在新的Chrome版本中,这不起作用!
此外,如果您在选择行后使用Chrome Inspector检查Plunkr 2,您可以看到该行确实获得了类.ngRow.selected(此类通过更改其背景颜色突出显示该行)但Chrome是一个无法直观地表示此更改(此类获取)
我怎么解决这个问题?任何线索?
编辑:
我创造了第三个plunkr:
http://plnkr.co/edit/cWMlKEz39n8K52VWH9q8?p=preview
这是第二个plunkr的一个分支,我在其中禁用了每个没有“angular-animate”类的项目的动画,即:
app1.config(['$animateProvider',function($animateProvider){ $animateProvider.classNameFilter(/angular-animate/); }]);
这有效(现在选择后会突出显示行),但如果您在应用中使用动画,这将主要打破其他所有动画!比如bootstrap-ui模态.所以,这不是一个解决方案,而是一个想法:我只需要禁用ng-grid的动画.我如何实现这一目标?
classNameFilter(x)仅为其中包含类x的项启用动画.是否有类似功能禁用某些项目的动画?
解决方法
afterSelectionChange: function(rowItem,event) { var x = document.querySelectorAll(".ng-scope .ngRow"); x[rowItem.rowIndex].style["webkitUserSelect"] = "none"; $timeout(function() { x[rowItem.rowIndex].style["webkitUserSelect"] = "text"; },100); }
此修复程序适用于多个项目.记得DI $超时.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。