Как я могу получить доступ к атрибутам элемента формы внутри функции, вызываемой на ng-submit?элемент формы доступа с угловым элементом внутри функции ngsubmit
.controller('loginCtrl', function ($scope, $rootScope, $location, $window, session,$http) {
$scope.error = null;
console.log($scope);
$scope.attempt = function (url) {
//URL get passed.. but i want to fetch it from the form action attribute
var data = {username:$scope.info.u,password:$scope.info.u};
$http.post(ul, data).success(function(response) {
$scope.error = "welcome";
$rootScope.currentUser = data;
session.set('siUser', data);
$location.path('/dash');
}).error(function(reason) {
$scope.error = "failed try again" + $scope.info.p + ' ' + $scope.info.u;
});
};
})
HTML
<form role="form" ng-submit="attempt('<?=base_url('auth/login');?>')" method="post">
<fieldset>
<div class="form-group">
<input type="text" ng-model="info.u" placeholder="Username" class="form-control" ng-min-length="4" required />
<p ng-show="info.u.$invalid" class="help-block">You username is required.</p>
</div>
<div class="form-group">
<input type="password" name="password" ng-model="info.p" placeholder="Password" class="form-control" />
<p ng-show="info.p.$invalid" class="help-block">password is required.</p>
</div>
<button ng-disabled="loginForm.$invalid" class="btn btn-lg btn-success btn-block" type="submit">Login</button>
</fieldset>
</form>
в настоящее время, что я делаю, передавая его функции. но есть ли более чистый способ доступа к элементу из функции внутреннего контроллера?
есть ли решение без взлома html? – Zalaboza
Боюсь, что нет. Но этот метод не так хакен, это просто событие. Если вы используете контроллер, нет никакого способа получить элемент для jQuery или document.querySelector() ;. Вы можете сделать пользовательскую директиву и использовать это вместо ngSubmit. Я думаю, что это самый чистый способ получить элемент. –
Создание настраиваемой директивы для управления элементом - лучшая практика. Угловые лучшие практики говорят о том, что работать с DOM вне директив (например, через контроллер) нехорошо. Вот почему не существует «нехитрый» способ получить элемент, потому что контроллеры не рассматривали эту логику. –