angular-ui/ui-grid
在 GitHub 查看Row edit feature will save rows, despite them being invalid through the validation feature
Open
#5,320 建立於 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();
}
};