Smarter AngularJS forms for reacting to submission states
npm install angular-form-stateangular-form-state 
==================
Smarter AngularJS forms for reacting to submission states
``bash`npm
$ npm install angular-form-statebower
$ bower install angular-form-state
`js`
// node module exports the string 'angular-form-state' for convenience
angular.module('myApp', [
require('angular-form-state')
]);
// otherwise, include the code first then the module name
angular.module('myApp', [
'angular-form-state'
]);
Replace your ngSubmit directives with bdSubmit.
`html`
In addition to standard ngSubmit behavior, the expression passed to bdSubmit can return a promise.
A submission objection is attached to ngFormController containing:true
succeeded boolean*: if the bdSubmit expression returns a value or fulfilled promisetrue
failed boolean*: if the expression returns a rejected promiseError
error object*: The from a rejected promise returned by the bdSubmit expression. Otherwise null.true
pending boolean*: if the expression returned a promise that is still pending (not resolved or rejected)true
attempted boolean*: if submission has been attempted at least once
attempts number*: The number of times that form submission has been attempted.
Form submission can be reattempted an unlimited number of times. If you wish to prevent users from resubmitting a form that was successfully sent, for example, you should implement that yourself. Submission state (succeeded, failed, error, pending) is reset on every new submission attempt and will always reflect the active/most recent submission.
When the bdSubmit expression returns a rejected promise, the error is passed to $exceptionHandler which by default logs the error using console.error.
`js`
$scope.submit = function () {
// return a promise, probably from $http
};`html`
submitButton can be combined with bdSubmit to create a simple text button that:
* Disables itself and changes its text to a customizable message while form submission is pending
* Re-enables itself and restores its text when form submission completes (succeeds or fails)
`html`
The directive will automatically add type="submit"` to the element.