Ответы пользователя по тегу Angular
  • Как обновить валидацию в пошаговой форме регистрации на angular?

    AMar4enko
    @AMar4enko
    Все верно, на самом деле.
    ng-dirty появляется тогда, когда пользователь поработал с формой.
    До этого будет ng-pristine.
    Но сама валидация (ng-invalid-required, например), обновляется и после программного изменения модели.
    Так что вам, скорей всего, нужно чуть-чуть изменить логику в своем контроллере. Я сделал так, что у меня есть переменная, которая отвечает за то, показывать ошибки или нет.
    Логика такая:
    - пользователь редактирует новую форму, мы ему ничего не показываем (зачем его отвлекать ?)
    - по нажатию на "Сохранить", "Вперед" и т. д. проверяем, если форма не валидна, мы включаем отображение ошибок, и ждем пока он все ошибки не исправит, а доступность кнопки определяем по form.$dirty
    Ответ написан
    Комментировать
  • Какой фреймворк для JavaScript MDI приложения лучше?

    AMar4enko
    @AMar4enko
    ExtJS или Dojo, правда первый бесплатный только для OpenSource
    Ответ написан
  • Как избавиться от зависимых запросов?

    AMar4enko
    @AMar4enko
    Вам уже правильно сказали, что надо сделать отдельный API-метод для этой ситуации. По-сути это REST-метод получения коллекции с фильтром.
    В качестве фильтра у вас будут выступать город и категория.
    Для города и категории у вас хранится alias и id, с фронта вам прилетает alias.
    Вы проверяете, есть ли у вас в кеше сохраненные id для переданных алиасов города и категории. Если нет, то строите большой запрос с джойнами, который фильтрует по альясам. В результате выполнения вы помимо информации по музеям получите id города и категории, которые вы кладете в кеш. Последующие запросы возьмут id из кеша и запрос будет к одной таблице без джойнов с фильтром по конкретным id.
    Ответ написан
    Комментировать
  • JavaScript фреймфорк + права пользователей + интерфейс

    AMar4enko
    @AMar4enko
    Если поразмыслить, то мало скрывать-показывать элементы - для этого можно использовать, как вы правильно сказали, rootScope + директивы (ng-if, ng-hide).
    Нужно еще ведь и отдачу данных ограничить - обычный пользователь не должен получать от сервера данные, которые не может видеть.
    Т.е. недостаточно, на мой взгляд, просто скрыть колонку в таблице, если данные для этой колонки все равно прилетают с сервера.
    Ответ написан
  • Как в AngularJS сделать добавление директив "на лету"?

    AMar4enko
    @AMar4enko Автор вопроса
    Разобрался. Если кому интересно:
    Дело было, на самом деле, во внутренностях ангуляра, а точнее в том, что он при компиляции ноды принудительно проверяет наличие некоторых атрибутов, и делает для их содержимого $scope.$watch, внутри которого делает attrs.$set.
    Так как я добавлял ngRequired после компиляции ноды, то мне надо было просто сделать что-то типа:
    $scope.$watch(attrs.formControl + ".required('" + (element.attr('name')) + "')", function(value){
        attrs.$set("required", !!value)
     });

    А ngRequired, как показано выше, отслеживает значение атрибута required и обновляет валидацию.
    Ответ написан
    Комментировать