Добрый день, форумчане! Помогите сделать код более читабельным)
Длинные цепочки для доступа к аттрибуту усложняют читабельность значительно, и это осложняет жизнь.
Я привожу код, который не работает. Потому что, когда вызывается функция инициализации контроллера, $scope.signUpForm === undefined (как и $scope.user).
Как мне инициализировать контроллер так, что бы не писать портянку в checkRepeatePassword, но задать signUpForm и user до вызова метода как в примере?
<html ng-app="app">
<div ng-controller="SignUpCtrl">
<form novalidate name="signUpForm">
<input type="password" ng-change="checkRepeatePassword"
required ng-model="user.password" name="password"><br>
<input type="password" ng-change="checkRepeatePassword"
required ng-model="user.repeatPassword" name="repeatPassword">
</form>
</div>
</html>
var app = angular.module('app', []);
app.controller('SignUpCtrl', ['$scope', '$http', function($scope, $http) {
var user = $scope.user;
var signUpForm = $scope.signUpForm;
var repatePasswordInput = signUpForm.repeatePassword;
var passwordInput = signUpForm.password;
$scope.checkRepeatePassword = function() {
if (repeatPasswordInput.$pristine) return;
var error = user.repeatPassword === user.password;
signUpForm.$error.repeatPassword = error;
repeatePasswordInput.$error.repeatPassword = error;
};
});
P.S.: Если кто подскажет более красивое решение валидации паролей, буду еще больше благодарен))