I\'m working on a small frontend application which will show various product shipping data in a ui-grid.
I have the following code:
HTML:
I had actually used the code submitted by punkologist and it was indeed working but there seemed to be errors in the console on resolving promise after including $interval.
I guess the following is the appropriate code to make it run error free. Hope it works.
$scope.saveRow = function( rowEntity ) {
var promise = $q.defer();
$http.put('/Home/UpdateRow',row).success(function(){
$interval(function(){
promise.resolved();
},3000, 1)
}).error(promise.reject);
$scope.gridApi.rowEdit.setSavePromise($scope.gridApi.grid, rowEntity, promise);
};
You would normally do the promise/api call in a separate repository, but basically the code you are looking for is something like this:
$scope.saveRow = function( rowEntity ) {
var promise = $scope.someRepositoryFunction(rowEntity);
$scope.gridApi.rowEdit.setSavePromise($scope.gridApi.grid, rowEntity, promise);
// fake a delay of 3 seconds whilst the save occurs, return error if gender is "male"
//$interval( function() {
// if (rowEntity.firstName === 'male' ){
// promise.reject();
// } else {
// promise.resolve();
// }
//}, 3000, 1);
};
$scope.someRepositoryFunction = function(row) {
return $http.put('/Home/UpdateRow',row);
}
I'm not allowed to comment so I have to submit an answer. The answer above is incorrect in that the $scope.gridApi.grid parameter to teh setSavePromise function is NOT required. Although the function does require a grid parameter, it is added by the wrapper during the .apply call.