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);
더 이상 필요하지 않습니다 (답 : timothyswt). gridOptions에 primaryKey 속성을 추가하고 고유 한 값이있는 열을 지정하기 만하면됩니다. – fnx