2016-09-25 45 views
0

我正在使用Angular UI网格,并且对它非常新颖。我收到一组对象来呈现每行的数据。每个对象,因此每行都有一个字段change:false,它标记该行上的任何字段是否已被编辑。我在屏幕上保留了这个字段visible : false与gridData在UI网格编辑事件上的交互

但是,无论何时对任何行的任何列进行任何更改,我都想将此字段设置为change:true

对于这个问题,如何在ui-dropdown字段或其他字段的变化上实现这一点。

我有这个作为我改变柱:

{ name: "carrier_influence_group", displayName: "Carrier influence group", enableCellEdit: true, 
       editableCellTemplate: 'ui-grid/dropdownEditor', type:'object', cellFilter: 'cigFilter', editDropdownValueLabel: 'name', 
       editDropownOptionsArray: [{ id: 10, name: 'Small' }, { id: 11, name: 'Medium' }, { id: 12, name: 'Large' }] 
        }, 

我试图寻找可用的任何选项。但在官方docs找不到任何方法。请建议一种方式或一些相关链接

回答

1

您可以使用afterCellEdit事件。

$scope.gridOptions.onRegisterApi = function (gridApi) { 
    $scope.gridApi = gridApi; 

    gridApi.edit.on.afterCellEdit($scope, function (rowEntity, colDef, newValue, oldValue) { 
     if (newValue !== oldValue) { 
      rowEntity['change'] = true; 
     } 
    }); 
}); 
+0

它的工作......特别感谢'rowEntity,colDef,newValue,oldValue'参数。 –

+0

我还有一个问题。如果我想连续做一件事情怎么办?目前如果我正在编辑一个单元格,我希望这个新行被推入一个数组中。现在每个单元格编辑后,如果我推动行,我最终推动很多行 –

+0

感谢您接受答案。你的rowEntity是否有某种独特的主键?我只是在范围中存储已经推送的ID数组,然后只在这个数组中找不到ID时才进行推送。 –