我試圖使用ng-grid
安裝程序,我遇到以下問題。angularjs ng-grid保持選擇更新
我顯示的數據非常頻繁地變化,每隔5秒左右。但是並沒有很多新的數據被添加到列表中。
當我將數據設置到ng-grid時,用戶可以開始查看數據。但是當我約5秒後更新數據時,用戶所做的選擇和分組丟失。
http://plnkr.co/edit/eK1aeRI67qMROqDUtPnb
反正是有保留的選擇和/或分組?
我試圖使用ng-grid
安裝程序,我遇到以下問題。angularjs ng-grid保持選擇更新
我顯示的數據非常頻繁地變化,每隔5秒左右。但是並沒有很多新的數據被添加到列表中。
當我將數據設置到ng-grid時,用戶可以開始查看數據。但是當我約5秒後更新數據時,用戶所做的選擇和分組丟失。
http://plnkr.co/edit/eK1aeRI67qMROqDUtPnb
反正是有保留的選擇和/或分組?
您將不得不經過併合並for循環中的數據。如果您替換整個數組,則將替換對象引用,因此您將失去所做的任何更改。
另一種選擇是將您的選擇保留在不同的陣列或字典中,然後在替換陣列後重新映射屬性。注意這裏你將需要使用引用類型,所以更改會保留到你的選擇數組中。
所以像[僞代碼]:
// a dictionary of reference types (IMPORTANT that they are objects!)
// to hold selection data.
var selections = {
'Name1' : { value: 'selection' },
'Name2': { value: 'selection2' }
}
$scope.getMyData = function() {
// do whatever to get your data here.
$scope.myData = [
{ name: 'Name1' },
{ name: 'Name2' }
];
// update your objects in your array.
for(var i = 0; i < $scope.myData.length; i++) {
var data = $scope.myData[i];
var selection = selections[data.name];
if(selection) {
data.selection = selection;
}
}
};
// initial load
$scope.getMyData();
// your test interval
setInterval(function() {
$scope.$apply(function(){
$scope.getMyData();
});
}, 5000);
我們將要增加,在未來版本的PrimaryKey選項將允許電網鍵關機,與其引用。
謝謝,這真的很棒。任何改變你會知道哪個下一個版本的主鍵被添加? –
對不起,我可以更好地搜索一下,發現問題https://github.com/angular-ui/ng-grid/issues/233 - 所以它在2.1版本中發佈 –
不再需要(由timothyswt回答)。只需將primaryKey屬性添加到gridOptions並指定具有唯一值的列即可。 – fnx