Javascript 如何修改UI Grids gridoptions.data

Javascript 如何修改UI Grids gridoptions.data,javascript,angularjs,angular-ui-grid,Javascript,Angularjs,Angular Ui Grid,我使用UI网格显示大表(30-40列)和数千行。我通过基本上是json数组的websocket获取数据。 传入数据分为两部分,一部分是“添加”数组,其中包含直接推送到$scope.gridOptions.data的行。传入数据的另一部分是 “编辑”数组,由替换/修改现有$scope.gridOptions.data的行组成 添加部分非常简单,只需推到现有的gridOptions.data数组。但编辑部分很棘手。当前我正在传入数组中循环 在gridoptions数组上。这是最糟糕但有效的解决方案,

我使用UI网格显示大表(30-40列)和数千行。我通过基本上是json数组的websocket获取数据。 传入数据分为两部分,一部分是“添加”数组,其中包含直接推送到$scope.gridOptions.data的行。传入数据的另一部分是 “编辑”数组,由替换/修改现有$scope.gridOptions.data的行组成

添加部分非常简单,只需推到现有的gridOptions.data数组。但编辑部分很棘手。当前我正在传入数组中循环 在gridoptions数组上。这是最糟糕但有效的解决方案,有更好的方法吗

我认为在数组上使用“indexOf”函数,可以直接找到可以修改的数组索引。但是由于UI网格是基于角度的,所以所有三个数组 (add、edit和scope.gridOptions)包含唯一的$$hashKey,因此不能使用indexOf

我可以通过angular.toJson函数去掉$$hashkey而不产生任何副作用吗

我有一个字段来标识唯一的行,我可以用$$hashKey替换它,在UI网格中使用类似“跟踪方式”的内容吗

这是我的密码:

  $scope.$on('test',function(event, data){ 

        $scope.add(data.ADD);

        $scode.edit(data.EDIT);


        $scope.$apply();

  });   


$scope.edit=function(data){

  for(var i = 0; i < data.length; i++) { 
     //var j = $scope.gridOptions.data.indexOf(data[i]);
     //$scope.gridOptions.data[j] = data[i];

     for(var j = 0; j < $scope.gridOptions.data.length; j++) {
         if(data[i].iRowID == $scope.gridOptions.data[j].iROWID ) {
             $scope.gridOptions.data[j] = data[i];

         }
     }
  }
};


$scope.add=function(data){

   for(var i = 0; i < data.length; i++) {

       $scope.gridOptions.data.push(data[i]);
   }
};
$scope.$on('test',函数(事件,数据){
$scope.add(data.add);
$scode.edit(data.edit);
$scope.$apply();
});   
$scope.edit=函数(数据){
对于(var i=0;i