ngDisabled альтернатива для ссылки?
У меня есть список на моей странице с кнопкой удаления для каждого элемента. Кнопка не <button>
, но на самом деле это потрясающая иконка с ng-click
указывая на метод сервиса RESTful:
<i class="fa fa-trash fa-lg pull-right" ng-click="deleteQuestion($id)"</i>
Элемент будет удален из просмотра только после того, как запрос Http будет завершен. Если пользователь нажимает значок слишком быстро несколько раз, повторные запросы будут отправлены, и только первый будет успешным, другие потерпят неудачу, потому что объект не существует. Я хочу отключить кнопку (иконку) или не отправлять повторяющиеся запросы. Каков наилучший подход?
Я знаю, что есть ngDisabled
, но я не могу использовать его, потому что элемент на самом деле не кнопка, и я также хочу заблокировать одну кнопку. не все одновременно.
2 ответа
Попробуйте следующий подход :
Посмотреть:
<i class="fa fa-trash fa-lg pull-right" ng-hide="remove" ng-click="deleteQuestion($id)"</i>
Js Controller:
$scope.remove = false;
$scope.deleteQuestion(id) {
$scope.remove = true;
$http.get('url')
.success(data){
//other logic
$scope.remove = false;
}
}
Вы можете сделать что-то вроде этого -
$scope.deleteQuestion(id) {
$scope.disabled = true;
$http.get('url')
.success(data){
//other logic
$scope.removed = true;
}
}
И в вашей разметке вы можете иметь -
<i class="fa fa-trash fa-lg pull-right" ng-show="!removed" ng-disabled="deleted" ng-click="deleteQuestion($id)"</i>
Это самый простой способ сделать это, но, конечно, не самый элегантный.