2016-09-25 55 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時才進行推送。 –