首先我。我不想把以前的反應歸功於伊莫斯,這讓我走上了正軌。總之:
您可以通過訪問每個組內的格柵:
$scope.gridOptions.ngGrid.rowFactory.aggCache
每個組都有一個真崩潰值|假
當用戶打開或摺疊一組我能通過添加自定義aggregateTemplate我gridOptions趕上事件:
$scope.gridOptions = {
data: "myData",
showGroupPanel: true,
aggregateTemplate:
"<div ng-click='row.toggleExpand(); saveGroupState()' ng-style='rowStyle(row)' class='ngAggregate ng-scope' style='top: 0px; height: 48px; left: 0px;'>"+
"<span class='ngAggregateText ng-binding'>"+
"{{row.label CUSTOM_FILTERS}} ({{row.totalChildren()}} {{AggItemsLabel}})"+
"</span>"+
"<div ng-class="{true: 'ngAggArrowCollapsed', false: 'ngAggArrowExpanded'}[row.collapsed]"></div>"+
"</div>"
}
的saveGroupState()函數,然後基於這些行的標籤保存每個行崩潰狀態中的localStorage
$scope.saveGroupState = function() {
var groups = $scope.gridOptions.$gridScope.renderedRows;
for (var i = 0; i < groups.length; i++) {
localStorage.setItem("taskListGroup_" + groups[i].label, groups[i].collapsed);
}
}
現在,您已將組中的狀態保存在localStorage中,並且可以捕獲切換事件並更新該值。
下一步是簡單地將初始崩潰狀態中的localStorage你的價值比較,在NG-電網已加載,並且在必要時通過切換行:
$scope.gridOptions.ngGrid.rowFactory.aggCache[rowIndex].toggleExpand();
我知道有很多的方法來優化這個,我只是在尋找一種快速實現它的方法,一個poc。
改進的想法是受歡迎的。
非常感謝你!走了一些擺弄,但最終解決了。 通過添加自定義aggregateTemplate捕獲組切換事件。然後將每個組崩潰狀態保存在webStorage中,並通過組進行循環,並設置加載ng-grid時的狀態。 – Solders 2015-02-13 14:24:58