Jump to content
  • 0

динамическая проверка полей


cyklop77
 Share

Question

помогите пожалуйста разобраться в ситуации

 

при помощи angularjs навесил на форму валидацию. в целях отладки каждое действие сопровождается выводом в консоль сообщений:

briefApp.directive('nameValidate', function() {    return {        link: function($scope, element, attrs, ctrl) {            $scope.$watch('name', function(value){                console.log(11111);                                console.log($scope.brief_form_new.name_new.$valid + 'for name');            });                    }    };});briefApp.directive('phoneValidate', function() {    return {        link: function($scope, element, attrs, ctrl) {            $scope.$watch('phone', function(value){                console.log(2223);                                console.log($scope.brief_form_new.phone_new.$valid + 'for phone');            });                    }    };});briefApp.directive('emailValidate', function() {    return {        link: function($scope, element, attrs, ctrl) {            $scope.$watch('email', function(value){                console.log(333333);                console.log($scope.brief_form_new.email_new.$valid + 'for email');            });                    }    };});briefApp.directive('messageValidate', function() {    return {        link: function($scope, element, attrs, ctrl) {            $scope.$watch('message', function(value){                console.log(44444);                console.log($scope.brief_form_new.message_new.$valid + 'for message');            });                    }    };});

проблема в том, что я не понимаю почему:

1. после первой загрузки и отрисовки формы в консоль выводится только:

11111helper.js:19 falsefor namehelper.js:40 333333helper.js:41 falsefor email

хотя должно ещё и:

11111

44444

 

 

2. при каждом вводе(нажатие и отпускание клавиши) в поле "name" в консоль выводится:

 11111helper.js:19 truefor name

но при каждом вводе в поле "phone" или "message" в консоль ничего не выводится. а должно выводиться:

2222

или

44444

 

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

смысл деректив в реиспользуемости, а у тебя они жестко привязаны к имени скопа

для валидации мыла достаточно input[type=email]

более без работающего примера сказать сложно

  • Like 1
Link to comment
Share on other sites

  • 0

смысл деректив в реиспользуемости, а у тебя они жестко привязаны к имени скопа

для валидации мыла достаточно input[type=email]

более без работающего примера сказать сложно

так есть же выше ссылка на фиддл

 

у меня там поля валидируются без проблем, мне другое непонятно

Edited by cyklop77
Link to comment
Share on other sites

  • 0

так есть же выше ссылка на фиддл

это не фидл. Как я там править буду? (в данном случае вряд ли буду =)

но при каждом вводе в поле "phone" или "message" в консоль ничего не выводится. а должно выводиться:

директива phoneValidate не подключена

messageValidate тоже

  • Like 1
Link to comment
Share on other sites

  • 0

 

так есть же выше ссылка на фиддл

это не фидл. Как я там править буду? (в данном случае вряд ли буду =)
 

аа точно. сорри

 

но при каждом вводе в поле "phone" или "message" в консоль ничего не выводится. а должно выводиться:

директива phoneValidate не подключена

messageValidate тоже

 

и правда, это всё объясняет. ну я лошара

Link to comment
Share on other sites

  • 0

смысл деректив в реиспользуемости, а у тебя они жестко привязаны к имени скопа

для валидации мыла достаточно input[type=email]

более без работающего примера сказать сложно

а подскажите пожалуйста как директивы можно отвязать от имени скопа на примере jsfiddle . только совсем всё не переделывайте, пусть останется говнокод, но понятный

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Similar Content

    • By cyklop77
      помогите пожалуйста разобраться с установкой fancybox через bower в проект на angularjs
      я нашёл модель fancyboxes здесь . на это страничке написано, что нужно ввести:
      $ bower install FancyBoxes я это сделал. затем прописал его в bower.json:
      { "name": "angular-campus-app", "dependencies": { "FancyBoxes": "", "angular": "^1.5.5", "angular-material": "^1.0.7", "angular-ui-router": "^0.2.18", "angular-sanitize": "" }, "overrides": {} } затем добавил его в основной модуль так:
      angular.module('app', [ 'ui.router', 'ngSanitize', 'ngAnimate', 'FancyBoxes', 'app.config', 'app.directives', 'app.filters', 'app.services', 'ngMaterial', 'app.controllers' ].concat(pageOptions.map(function(e){return e.id}))) после этих действий приложение вообще перестало запускаться. в консоли браузера сообщение такое:
       
    • By itincorp
      В компанию Wiley приглашается Senior JavaScript developer.

      Требования:
      - техническое образование;
      - знание английского языка на уровне не ниже Intermediate;
      - опыт работы по специальности от 3 лет;
      - опыт работы с JavaScript, CSS, Node / Grunt, BackboneJS, ReactJS, AngularJS, dotCMS.

      Обязанности:
      - проектирование и реализация веб интерфейса для распределённых многопользовательских систем корпоративного уровня;
      - использование web и JavaScript технологий: CSS, Node / Grunt, BackboneJS, ReactJS, AngularJS, dotCMS.

      Условия:
      - оформление согласно трудовому законодательству и «белая» заработная плата;
      - фиксированная оплата труда, премирование по результатам работы за полугодие;
      - размер заработной платы обсуждается с успешными кандидатами, по результатам собеседования;
      - периодическая индексация заработной платы;
      - корпоративная программа добровольного медицинского страхования;
      - корпоративные курсы английского языка;
      - стабильность;
      - благоприятное офисное пространство;
      - иногородним кандидатам компенсируем стоимость проезда до Москвы;
      - помогаем в быстром поиске жилья и обустройстве на новом месте.

      Место работы: Московская обл., г. Королев
      График работы: пятидневная рабочая неделя, занятость полная.
      Перед собеседованием соискателям, возможно, будет предложено выполнить тестовое задание.

      Контакты для связи:
      itincorp@gmail.com
      +7 916 072 29 58
      Skype: valeriya390
      Валерия
    • By itincorp
      В IT компанию (разработка ПО) приглашается Frontend developer. 

      Требования:
      - знание JavaScript, jQuery, AngularJS или BackboneJS;
      - знание и понимание HTML5 технологий;
      - знание ReactJS (как преимущество);
      - умение верстать кроссбраузерные адаптивные страницы;
      - понимание современных тенденций в области Front-end разработки;
      - опыт работы с Grunt / Gulp, SCSS и другими инструментами;
      - опыт работы с системами версионирования;
      - владение английским языком (чтение документации).

      Обязанности: 
      - создание SinglePage Application разного уровня сложности;
      - реализация интерфейсов по макетам дизайнеров;
      - оптимизация существующих приложений.

      Условия:
      - оформление согласно трудовому законодательству и «белая» заработная плата;
      - размер заработной платы обсуждается с успешными кандидатами, по результатам собеседования;
      - пятидневная рабочая неделя, график работы с 9 до 18 часов, 
      - офис расположен в историческом центре города;
      - возможности для роста и обучения.

      Контакты для связи: 
      E-mail: itincorp@gmail.com
      Skype - valeriya390
      Тел.: +7 (916) 072 29 58
      Валерия
    • By mdlv
      Как настроить angular-gripster, чтобы убрать Z-слои и наложение изображений друг на друга? Сейчас, если изображения большие, они накладываются друг на друга.
      Настройки, видимо, находятся в
      $scope.gridOptsИ еще не срабатывает
      resizable: { enabled : false }все равно можно растягивать изображения.
      Есть официальный демо-пример, там ресайз каким-то образом отключается.
      Мои текущие настройки (из демо-примера):
      $scope.gridsterOpts = {margins: [20, 20],outerMargin: false,floating: true,pushing: true,draggable: {enabled: true},resizable: {enabled: false,handles: ['n', 'e', 's', 'w', 'se', 'sw']}}Необходимо, чтобы изображения не накладывались друг на друга, т.е. учитывался их реальный размер, и они просто располагались рядом; чтобы не было возможности ресайза при помощи растягивания изображений за угол. И была возможность перемещения. Сейчас изображения перемещаются нормально, но накладываются друг на друга, и все равно доступен ресайз.
       
      Обновление:
      После добавления к html-блоку div, в котором находятся все изображения, опции
      <div gridster="gridsterOpts"> ресайз выключился. Осталась проблема наложения друг на друга изображений.
    • By Antoshka007
      Всем привет!
       
      Интересует вопрос по создания многопользовательского приложения на AngularJS совместно с Firebase. Имею представление о том, как с ней работать, как сделать регистрацию и авторизацию, но не знаю, как лучше организовать структуру хранения данных. 
      Приложение - простенький todolist с набором списков задач. Нужно, чтобы у каждого пользователя был свой набор списков и задач соответственно. Как лучше все это оформить, чтобы получение нужных данных не было слишком трудозатратным? 

      Под каждого пользователя при регистрации создавать свой объект, в котором и хранить массив его списков или может как-то иначе?

      Был бы рад услышать мнение тех, кто уже сталкивался с подобной задачей или получить пару ссылок на статьи, если у кого-то вдруг завалялись=)
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy