2016-04-06 8 views
0

У меня есть список на моей странице с кнопкой удаления для каждого элемента. Кнопка не <button>, но на самом деле это значок fontawesome с ng-click указывая на метод RESTful службы:ngDisabled альтернатива для ссылки?

<i class="fa fa-trash fa-lg pull-right" ng-click="deleteQuestion($id)"</i> 

элемент будет удален из поля зрения только тогда, когда запрос Http будет завершен. Если пользователь нажимает значок слишком быстро несколько раз, повторяющиеся запросы будут отправляться и только сначала будут успешными, другие будут терпеть неудачу, потому что сущность не существует. Я хочу отключить кнопку (значок) или не отправлять повторяющиеся запросы. Каков наилучший подход?

Я знаю, что есть ngDisabled, но я не могу использовать его, потому что элемент на самом деле не кнопка, и я также хочу заблокировать одну кнопку. не все одновременно.

ответ

0

Вы можете сделать что-то вроде этого -

$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> 

Это самый простой способ сделать это, но, конечно, не самый элегантный.

0

Try следующий подход:

Вид:

<i class="fa fa-trash fa-lg pull-right" ng-hide="remove" ng-click="deleteQuestion($id)"</i> 

Js Контроллер:

$scope.remove = false; 

$scope.deleteQuestion(id) { 
     $scope.remove = true; 
     $http.get('url') 
     .success(data){ 
      //other logic 
      $scope.remove = false; 
      } 
} 
Смежные вопросы