AngularJS禁用双击

AngularJS禁用双击,angularjs,Angularjs,我有一个按钮,点击联系服务器的问题。如果您双击(或任意次数的点击),您将呼叫服务器该次数 <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">{{ 'ADMIN.CONTENT.DELIVERIES.BODY.CLOSE' | translate }}</button> <a class="btn btn

我有一个按钮,点击联系服务器的问题。如果您双击(或任意次数的点击),您将呼叫服务器该次数

<div class="modal-footer">
    <button type="button" class="btn btn-default" data-dismiss="modal">{{ 'ADMIN.CONTENT.DELIVERIES.BODY.CLOSE' | translate }}</button>
    <a class="btn btn-danger" ng-click="vm.markDelivered()" ng-dblclick="return" ng-disabled="flag">{{ 'MANAGER.CONTENT.DELIVERIES.BODY.DELETE_PANEL.CONFIRM' | translate }}</a>
</div>

{{'ADMIN.CONTENT.DELIVERIES.BODY.CLOSE'| translate}}
{{'MANAGER.CONTENT.DELIVERIES.BODY.DELETE_PANEL.CONFIRM'| translate}}

我尝试过禁用
ng
,但由于某种原因,它不起作用,因为它说那里不允许该元素。我试着将
a
更改为
按钮,但看起来是一样的
ng dblclick=“return”
也不执行任何操作。

因此,使用引导按钮,您将无法使用禁用的ng。您必须这样做:

<div class="btn btn-default" ng-class="{'disabled': idDisabled}" ng-click="doSomething()">I'm a button!</div>

因此,使用引导按钮,您将无法使用ng disabled。您必须这样做:

<div class="btn btn-default" ng-class="{'disabled': idDisabled}" ng-click="doSomething()">I'm a button!</div>

我在这里看到了几个问题

首先,将锚定标记更改为按钮

其次,您似乎正在使用“controller as”语法。因此,您可能正在
vm
中设置
标志。但是,在html中,您正在
$scope
中查找标志。将
ng disabled=“flag”
更改为
ng disabled=“vm.flag”

最后一行按钮如下所示:
{{'MANAGER.CONTENT.DELIVERIES.BODY.DELETE_PANEL.CONFIRM'| translate}}


添加一个正在演示的
ng disabled

我在这里看到了几个问题

首先,将锚定标记更改为按钮

其次,您似乎正在使用“controller as”语法。因此,您可能正在
vm
中设置
标志。但是,在html中,您正在
$scope
中查找标志。将
ng disabled=“flag”
更改为
ng disabled=“vm.flag”

最后一行按钮如下所示:
{{'MANAGER.CONTENT.DELIVERIES.BODY.DELETE_PANEL.CONFIRM'| translate}}


添加一个演示的
ng disabled

使用一个简单的行为指令怎么样

函数oneTimeCallDirective($timeout){
var httpCallMock=(cb=()=>'ok')=>$timeout(cb,5000);
返回函数oneTimeCallPostLink(iScope,iElement){
让忙碌=虚假;
回程表
.on('click dblclick',函数(事件){
如果(忙){
return event.preventDefault();
}
忙=真;
console.info('嗯,呼叫');
返回httpCallMock()
.然后(()=>{
log('您可以再次开始调用');
})
.最后(()=>{
忙=假;
})
;
})
;
};
}
有棱角的
.module('测试',[]))
.directive('oneTimeCall',oneTimeCallDirective)
;

点击这里

使用简单的行为指令怎么样

函数oneTimeCallDirective($timeout){
var httpCallMock=(cb=()=>'ok')=>$timeout(cb,5000);
返回函数oneTimeCallPostLink(iScope,iElement){
让忙碌=虚假;
回程表
.on('click dblclick',函数(事件){
如果(忙){
return event.preventDefault();
}
忙=真;
console.info('嗯,呼叫');
返回httpCallMock()
.然后(()=>{
log('您可以再次开始调用');
})
.最后(()=>{
忙=假;
})
;
})
;
};
}
有棱角的
.module('测试',[]))
.directive('oneTimeCall',oneTimeCallDirective)
;

点击这里

就连我也有同样的问题,并用这种方法解决了

<div class="col-sm-4 form-group pull-right">
   <input type="submit" name="Submit" class="btn btn-primary"
    value="Submit" data-ng-disabled="myForm.$invalid"
    ng-click="myForm.$invalid=true;vm.markDelivered()" />
</div>


因此,在第一次单击myForm时,$invalid=true将被设置,按钮将被禁用。因此,您将不会有多个对服务器端代码的调用。

即使是我也遇到了同样的问题,并使用这种方法解决了这个问题

<div class="col-sm-4 form-group pull-right">
   <input type="submit" name="Submit" class="btn btn-primary"
    value="Submit" data-ng-disabled="myForm.$invalid"
    ng-click="myForm.$invalid=true;vm.markDelivered()" />
</div>


因此,在第一次单击myForm时,$invalid=true将被设置,按钮将被禁用。因此,您将不会多次调用服务器端代码。

必须使用什么?:)他想说使用
而不是
我也试过了,但它仍然告诉我那里不允许使用?哦,我知道问题是什么,我想,我会在上面编辑我的答案,只是更新我的答案。这是因为您正在使用Bootstrap,而且由于某些原因,Bootstrap无法与ng disabledHave配合使用什么?:)他想说使用
而不是
我也试过了,但它仍然告诉我那里不允许使用?哦,我知道问题是什么,我想,我会在上面编辑我的答案,只是更新我的答案。这是因为您使用的是引导,并且由于某些原因,引导不能与ng disabledit一起使用。它告诉我这里不允许使用
属性ng disabled
?你知道这是为什么吗?我为一个按钮添加了一个可工作的按钮。注意,它对
不起作用。您必须将其更改为
它告诉我这里不允许使用
属性ng disabled
?你知道这是为什么吗?我为一个按钮添加了一个可工作的按钮。注意,它对
不起作用。您必须将其更改为一个
惊人、流畅、简单且有效的表单验证不正确时,甚至可以禁用“提交”按钮。很高兴它对您有所帮助。。!!令人惊讶、流畅、简单且有效是的,如果表单验证不正确,甚至会禁用提交按钮。很高兴它帮助了您。。!!