在angular中我们可以设置一个按钮来发送像这样的ajax请求:
... ng-click="button-click"
Run Code Online (Sandbox Code Playgroud)
在控制器中:
...
$scope.buttonClicked = function() {
...
...
// make ajax request
...
...
}
Run Code Online (Sandbox Code Playgroud)
因此,为了防止双重提交,我可以在单击按钮时将buttonclicked设置为true,并在ajax回调完成时取消设置.但是,即使这样,控制也会被处理回角色,他们会更新Dom.这意味着在原始按钮单击完全100%完成之前,有一个小窗口可以再次单击按钮.
这是一个小窗口,但仍然可以发生.任何提示,以完全避免这种情况发生 - 客户端即没有对服务器进行任何更新.
谢谢
我已经浏览了整个网络,包括几个堆栈溢出示例,以解决问题.具体来说,我试过这个:
var disableButton = function() {
document.getElementById('<%= btnSubmit.ClientID %>').disabled = true;
}
$scope.isDisabled = false;
var someFunc = function() {
$scope.isDisabled = true;
}Run Code Online (Sandbox Code Playgroud)
<button OnClientClick="disableButton()" type="submit">Submit</button>
<button ng-disabled="isDisabled" type="submit">Submit</button>Run Code Online (Sandbox Code Playgroud)
两者都没有像宣传的那样工作.还有其他建议吗?请仅提供Angular建议.谢谢.