幾天前(2015年5月),Google Chrome發佈了一個新版本(43.0.2357.65米)。
有了這個新的版本,一個ng-grid
功能停止工作:ngGrid 2.0.14行選擇不適用於谷歌瀏覽器的新版本和ngAnimate
症狀:
當我點擊某一行,該行不突出
運行一些測試後,我已經成功地重現該問題從零開始:
- 創建一個需要ng-grid 2.0.14和ngAnimate的角度應用程序。
- 使用舊的Google Chrome瀏覽器版本,該行被正確突出顯示。
谷歌瀏覽器的新版本,該行不突出(雖然它被選中)
我已經創建了兩個plunkers:
Plunkr 1:應用無ngAnimate
http://plnkr.co/edit/2pSBX9K0QaeaSihMKnGG?p=preview
當選擇的行,該行被突出顯示,而不管瀏覽器版本
Plunkr 2:應用程式ngAnimate
http://plnkr.co/edit/hyRO4fTwglSCL8KCTgHA?p=preview
選擇一行時,該行會在舊版Chrome中突出顯示,但在新版Chrome中不起作用!
另外,如果您在選中某行後檢查了Plunkr 2並使用Chrome Inspector,則可以看到該行確實獲得了類.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
類別的項目啓用動畫。是否有類似的功能來禁用某些項目的動畫?
最後,我的角度應用程序使用'angular-animate'有兩個原因:'bootstrap ui modals'和庫'angular toaster'。所以我添加了'classNameFilter(/ modal | toast /)',它爲這些匹配的項目啓用了動畫,並且禁用了其他所有動畫(例如:ng-grids rows) – sports
我發佈了一個可能的解決方案給GitHub問題:https: //github.com/angular-ui/ng-grid/issues/3574 - 嘗試重建列。我在Chrome版本43.0.2357.124上成功完成了這個工作。 –