A FormCtrl . 2 , , - AJAX , , $scope. , , .
, LoginCtrl ( , ), - FormCtrl $scope, , , , AJAX.
login.html
<form ng-controller="LoginCtrl"
ng-submit="submit('my-ajax-url.php')"
name="loginForm">
...
</form>
FormCtrl.js
angular.module('app').controller('FormCtrl', function ($scope, formName, ajaxFunction) {
$scope.formData = {};
$scope.busy = false;
$scope.submitted = false;
$scope.submit = function (actionUrl) {
$scope.busy = true;
$scope.submitted = true;
if ($scope[formName].$invalid) {
$scope.busy = false;
return;
}
ajaxFunction(actionUrl, $scope.formData).error(function () {
$scope.busy = false;
});
};
});
LoginCtrl.js
angular.module('app').controller('LoginCtrl', function ($scope, $controller, AuthService) {
$controller('FormCtrl', {
$scope: $scope,
formName: 'loginForm',
ajaxFunction: AuthService.login
});
});