angular-ui/ui-grid
GitHub で見るRow edit feature will save rows, despite them being invalid through the validation feature
Open
#5,320 opened on 2016年4月14日
good first issue
説明
When using the row edit feature, validation will set the css class, but not prevent the saving of invalid data, which is unexpected.
I created a workaround by returning an empty promise to the setSavePromise function
$scope.saveRow = function(rowEntity) {
var isValid = true;
// check if the entity is invalid on any of its columns
for (var i = 0; i < $scope.gridOptions.columnDefs.length; i++) {
if ($scope.gridApi.validate.isInvalid(rowEntity, $scope.gridOptions.columnDefs[i]) !== undefined) {
isValid = isValid && !$scope.gridApi.validate.isInvalid(rowEntity, $scope.gridOptions.columnDefs[i]);
}
}
// if the entity is valid, then update. otherwise return an empty promise
if (isValid) {
var promise = SomeService.update(rowEntity).$promise;
$scope.gridApi.rowEdit.setSavePromise(rowEntity, promise);
} else {
var promise = $q.defer();
$scope.gridApi.rowEdit.setSavePromise(rowEntity, promise.promise);
promise.resolve();
}
};