@Fly3110
web developer

Как в AngularJS сделать формы неактивными во время сабмита (глобально)?

Всем привет!

Есть форма, в ней есть <fieldset ng-disabled="processing">
при сабмите формы, в контроллере я $scope.processing устанавливаю в true, после окончания выполнения метода контроллера, соответственно, устанавливаю в false.

В пределах небольшого кол-ва форм это можно все прописать руками, но задумался, нет ли какого-то более глобального метода?

Дополняю вопрос, так как, видимо, не очень понятно объяснил.
Я знаю, как сделать такой функционал в пределах одной формы. Но на сайте будет довольно большое количество форм, которые обрабатываются разными контроллерами. Я хочу понять, возможно ли добавить такой функционал всем формам по умолчанию (допустим, с прописыванием какой-то директивы).

То есть. Я знаю, что можно в методе сабмита формы установить сначала processing в true. Затем, когда метод выполнится, установить processing в false. Так вот, я хочу добавить эту установку processing в true и, затем, в false во все методы сабмита формы. И в будущие тоже.
То есть, допустим, я описываю форму не тегом "form", а тегом "myForm", который обрабатывается какой-то директивой, которая при сабмите устанавливает processing в true, затем вызывает реальный метод сабмита, тот, который прописан в форме, а затем, после окончания реального метода, устанавливает processing в false. Чтобы не писать одно и то же управление переменной processing в каждом методе сабмита.
Надеюсь теперь понятнее объяснил
Заранее спасибо!
  • Вопрос задан
  • 270 просмотров
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Вам же уже ответили на этот вопрос.

stackoverflow.com/questions/24119329/fieldset-and-...

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

Если для формы, вы можете назначать атрибуту промис, и внутри директивы трекать что когда закончится. По окончанию действия ресетить промис и ждать следующего. Ну и т.д. Так можно почистить контроллер от ненужных вещей.

Пример
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы