在我的Angular 1.x应用程序中,我通过对后端的api调用获得了一个报价列表。
对于回复中返回的每个提议,我都创建了一个ng-form。然后,我以模式显示表单,并且我希望在表单数据发布到后端时,能够禁用每个表单的提交按钮,以避免在表单数据发布到后端时多次单击。
这似乎很棘手,因为优惠的数量是未知的,因此我不确定如何为每个优惠初始化一个变量来禁用按钮。
如果我只有一个表单,任务会简单得多,我可以设置:
$scope.disableButton = true..。然后在按钮上使用ng-disabled
到目前为止,我显示的表单如下所示:
<div ng-form ng-repeat="i in offers track by $index" name="messageForm[$index]" class="row ng-cloak">
     ....
     <button type="button" ng-click="offerRespond(messageForm[$index])" ng-disabled="!messageForm[$index].$valid || offer.i.disableButtons">Submit</button>
</div>然后在我的控制器的offerRespond函数中:
offer = this;
offer.i.disableButtons = true;这当然不起作用,但这是我能得到的最接近的结果。
一个技巧是在将Offers对象传递到前端之前对其进行解析,但这似乎是一个可怕的技巧。
发布于 2019-02-21 04:58:01
实际上我在我的实现中几乎有了答案,我只是在正确地引用了我的变量:
ng-disabled="!messageForm[$index].$valid || offer.i.disableButtons"应该是
ng-disabled="!messageForm[$index].$valid || i.disableButtons"感谢@igor给了我一个测试的想法,让我自己揭示了答案。
https://stackoverflow.com/questions/54794546
复制相似问题