0

我的页面上有一个列表,每个元素都有删除按钮。按钮不是<button>,但实际上是一个非常棒的图标,ng-click指向 RESTful 服务的方法:

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

只有当 Http 请求完成时,该元素才会从视图中移除。如果用户多次按下图标太快,将发送重复请求,只有第一次成功,其他失败,因为实体不存在。我想禁用按钮(图标)或不发送重复请求。最好的方法是什么?

我知道有ngDisabled,但我不能使用它,因为该元素实际上不是一个按钮,我也想阻止一个按钮。不是所有的同时。

4

2 回答 2

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>

这是最简单的方法,但肯定不是最优雅的。

于 2016-04-06T13:15:26.933 回答
0

尝试以下方法

看法 :

<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;
          }
}
于 2016-04-06T13:37:35.860 回答