Bir sayfada oturum açma formum var, giriş fonksiyonunu yönetmek için kendi kontrolörüne sahip, ancak bir sebepten ötürü formun sunulması üzerine oturum açma fonksiyonu tetiklenmiyor.Div'e atanmamış kontrolörde AngularJS metodu
daha büyük bir görünüşüdür dosya içinde formu:
<div class="login-wrap" ng-controller="LoginCtrl as logincontrol">
<form ng-class="{submited: submited}" class="form-login" novalidate name="loginForm" x-ng-submit="logincontrol.login()">
<div class="form-group" ng-class="{errorEmail: loginForm.email.$error.required || loginForm.email.$error.email}">
<input type="email" name="email" id="email" class="form-control login-form-input" placeholder="{{'Email' | translate}}" x-ng-model="username" required>
</div>
<div class="form-group" ng-class="{errorPassword: loginForm.password.$error.required}">
<input type="password" id="password" name="password" class="form-control login-form-input" placeholder="{{'Password' | translate}}" x-ng-model="password" required>
</div>
<div class="text-center">
<button class="btn btn-success login-button" type="submit" translate>SIGN IN</button>
</div>
</form>
</div>
giriş kontrolü:
angular.module('services.security')
.controller('LoginCtrl', function ($scope, securityService, $rootScope) {
$scope.messages = {
error: false
};
console.log("HERE");
$scope.submited = false;
$scope.loading = false;
var validateEmail = function(email) {
var pattern = /^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return email.match(pattern);
};
$scope.login = function() {
console.log("clicked");
$scope.submited = true;
if (!$scope.loginForm.email.$viewValue) {
$scope.loginForm.email.$dirty = true;
$scope.loginForm.email.$invalid = true;
$scope.loginForm.email.$error.required = true;
}
if (!$scope.loginForm.password.$viewValue) {
$scope.loginForm.password.$dirty = true;
$scope.loginForm.password.$invalid = true;
$scope.loginForm.password.$error.required = true;
}
if (validateEmail($scope.loginForm.email.$viewValue)) {
if ($scope.loginForm.$valid) {
$scope.messages.error = false;
$scope.loading = true;
securityService.login($scope.loginForm.email.$viewValue, $scope.loginForm.password.$viewValue).then(function() {
$scope.loading = false;
}, function(data) {
console.log(data)
$scope.loading = false;;
});
}
} else {
if ($scope.loginForm.email.$viewValue){
$scope.loginForm.email.$dirty = true;
$scope.loginForm.email.$invalid = true;
$scope.loginForm.email.$error.email = true;
}
}
};
});
giriş görünüşüdür konsolunda basılır
HERE
yüklenir
, bu nedenle kontrol yĂźkleniyor Ancak, form gönderildiğinde giriş işlevi tetiklenmez (yani clicked
yazdırılmaz).