Edit in JSFiddle

(function(Bounce) {
	Bounce.controller('Create', function Create($scope, $bounce, $geo, $location, $xhr2, $util, $user) {
        // bootstrap the user data
        $user.current().then(function(user) {$scope.user = user;});

        $scope.back = function(){window.history.back();};
        $scope.loading = false;
        $scope.errors = false;
        $scope.navigation = 'create-bounce';
        $scope.bounce = {'seconds': 7200, 'range': 1000};
        $scope.create = function() {
            // If user hasn't already clicked.
            if(!$scope.loading) {
                $scope.errors = false;
                // Disable button and toggle loading state
                $('.btn-bounce').prop('disabled', true);
                $scope.loading = true;
                // Check for errors
                var error = $util.error([
                    {value: $scope.bounce.tagline, description: 'You must include a headline.'},
                    {value: $scope.bounce.message, description: 'You must include a message.'}
                ]);
                // Show the error, if there's one
                if(error && error.length > 0){
                    $scope.error = error;
                    $scope.loading = false;
                    return $scope.errors = true;
                }

                // Get a location and send the bounce
                $geo.location().then(function(position) {
                    $bounce.create($scope.bounce, position).then(function(results){
                        $location.path('/map');
                    }, function(e){
                        $scope.loading = false;
                        $scope.errors = true;
                        $scope.error = 'An unexpected error occurred. Umm, we\'ll look into that.';
                    });
                });
            }
        };
	});
})(Bounce);