$scope.new = function (salespoint) { $scope.disableAction = true; $scope.alertType = 'saving'; if ($scope.salespointMode.needsLocSuffix) { salespointsService.getLastLocSuffix().then(function (data) { var suffix = data.lastLocSuffix.locSuffix + 1; salespoint.locSuffix = suffix; }); } salespointsService.createSalespoint(salespoint).then(function (data) { $rootScope.$broadcast('salespoints:doSearch', true); $scope.alertType = 'success'; $scope.alertMessage = 'Salespoint successfully added.'; $scope.isNew = false; $scope.currentSalespoint = data; $scope.form.$setPristine(); $scope.disableAction = false; }); };But it seems that createSalespoint happens before the new suffix is calculated, so that new value is not updated.