в моем приложении Angular 1.x я получаю список предложений через API-интерфейс моего бэкэнда.
Для каждого предложения, возвращенного в ответе, я создаю ng-форму.Затем я отображаю формы в модальном режиме и хочу иметь возможность отключить кнопку отправки каждой формы, когда она была нажата, чтобы избежать нескольких нажатий, в то время как данные формы отправляются на сервер.
Это кажется сложным, посколькуколичество предложений неизвестно, поэтому я не уверен, как можно инициализировать переменную для каждого предложения, чтобы отключить кнопку.
Задача была бы намного проще, если бы у меня был только одинформа, я установил:
$scope.disableButton = true
... затем используйте ng-disabled на кнопке
Таким образом, я отображаю свои формы следующим образом:
<div ng-form ng-repeat="i in offers track by $index" name="messageForm[$index]" class="row ng-cloak">
....
<button type="button" ng-click="offerRespond(messageForm[$index])" ng-disabled="!messageForm[$index].$valid || offer.i.disableButtons">Submit</button>
</div>
Тогда в моей функции offerRespond моего контроллера:
offer = this;
offer.i.disableButtons = true;
Конечно, это не работает, но это настолько близко, насколько я могу.
Хаком было бы проанализировать объект Offers перед передачей.это к интерфейсу, но это просто кажется ужасным хаком.