2014-10-03 73 views
0

我的应用程序包含一个带有保存按钮的表单。当表单被提交时,函数save()被调用,它执行一个ajax请求来提交表单。如何在ajax请求正在执行时创建指令,将按钮的文本更改为“正在加载...”,然后在请求完成时将其设置回“保存”?Angular指令在ajax之前和之后改变按钮状态

是一个指令正确的方法来解决这个问题,或者我想它是错误的方式吗?

+0

您好!请问我有一些反馈吗? – coma 2014-10-03 15:33:25

回答

1

这是我平时做的(好吧,是玉,但你的想法吧?):

button(type="submit", ng-if="!saving") Save 
button(type="button", ng-if="saving") Saving... 

所以,在你的控制器只设置$scope.saving = true; Ajax调用之前,改变它最后:

$scope.saving = true; 
$http 
... 
.finally(function() { $scope.saving = false; }); 

如果你想给更多的信息,如显示成功(.then)的东西或失败(.catch),那么你可以使用ngSwitch了。

不知道,但制定了一个这样的指令似乎过度使用,并没有这个解决方案那么灵活。