Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.01.2014, 09:37
Новичок на форуме
Отправить личное сообщение для EgorKluch Посмотреть профиль Найти все сообщения от EgorKluch
 
Регистрация: 24.01.2014
Сообщений: 1

Инициализация контроллера: повышение читабельности кода
Добрый день, форумчане! Помогите сделать код более читабельным)

Длинные цепочки для доступа к аттрибуту усложняют читабельность значительно, и это осложняет жизнь.

Я привожу код, который не работает. Потому что, когда вызывается функция инициализации контроллера, $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.: Если кто подскажет более красивое решение валидации паролей, буду еще больше благодарен))
Ответить с цитированием
  #2 (permalink)  
Старый 28.01.2014, 18:31
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Зачем проверять совпадение паролей при каждом клике, если это можно делать при отправке формы?

Если зачем-то нужна такая интерактивность стоит написать отдельную директиву и добавить в нг-модель свой парсер
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
инициализация плагинов до вставки html-я в DOM FanAizu jQuery 3 19.01.2014 01:16
Как отловить событие контроллера, в другом контроллере hopest Angular.js 5 27.11.2013 16:53
Инициализация объекта после подгрузки ajax Ваяс AJAX и COMET 3 24.11.2013 13:46
Автоматическая инициализация плагинов. FanAizu Общие вопросы Javascript 3 08.10.2013 15:26
Инициализация плагина при изменении размеров окна браузера prison47 jQuery 12 02.04.2013 03:45