我正在尝试使用ng-grid
设置,我遇到以下问题。
我显示的数据每隔5秒左右就会频繁变化。但是没有很多新数据被添加到列表中。
当我将数据设置为ng-grid时,用户可以开始查看数据。但是当我在大约5秒后更新数据时,用户所做的选择和分组都将丢失。
http://plnkr.co/edit/eK1aeRI67qMROqDUtPnb
无论如何都要保留选择和/或分组?
答案 0 :(得分:3)
您将不得不通过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);
答案 1 :(得分:2)
我们将在下一个版本中添加一个主键选项,允许网格关闭而不是引用。