angularjs ng repeat form仅禁用每个表单输入
我有一个angularjs ng repeat form仅禁用每个表单输入,angularjs,angularjs-ng-repeat,Angularjs,Angularjs Ng Repeat,我有一个ng repeat表单。 当提交表单时,我想禁用提交表单输入 我面临的问题是当我提交表格时。它将禁用所有表单输入,并且从不返回以启用 请看看这个 或下面的代码片段。谢谢 在JS中 在HTML中 <div ng-repeat="(key, value) in newDatas"> <form name="newData"> <input type="text" ng-model="value" ng-disabled="isDisabled">
ng repeat
表单。
当提交表单时,我想禁用提交表单输入
我面临的问题是当我提交表格时。它将禁用所有表单输入,并且从不返回以启用
请看看这个
或下面的代码片段。谢谢
在JS中
在HTML中
<div ng-repeat="(key, value) in newDatas">
<form name="newData">
<input type="text" ng-model="value" ng-disabled="isDisabled">
{{value}}
<button ng-click="send()" ng-disabled="isDisabled">submit</button>
</form>
</div>
{{value}}
提交
setTimeout
函数在Angular“作用域”之外执行,因此Angular不知道您已再次将isDisabled
设置为false
使用$timeout服务,因为它会将您的函数包装在
$scope内。$apply
并触发更新绑定的$digest循环。setTimeout
函数在Angular“scope”之外执行,因此Angular不知道您已再次将isDisabled
设置为false
使用$timeout service,因为它会将您的函数包装在
$scope.$apply
中,并触发更新绑定的$digest循环。您需要调用$scope.$digest(),以便捕获更改
setTimeout(function() {
alert('done');
$scope.isDisabled = false;
$scope.$digest();
},1000);
或者最好使用自动执行的$timeout:
$timeout(function() {
alert('done');
$scope.isDisabled = false;
},1000);
您需要调用$scope.$digest()以允许捕获更改
setTimeout(function() {
alert('done');
$scope.isDisabled = false;
$scope.$digest();
},1000);
或者最好使用自动执行的$timeout:
$timeout(function() {
alert('done');
$scope.isDisabled = false;
},1000);
它将仅禁用提交表单。试试这个: 在HTML中:
<form name="newData">
<input type="text" ng-model="value" ng-disabled="isDisabled[key]">
{{value}}
<button ng-click="send(key)" ng-disabled="isDisabled[key]">submit</button>
</form>
请参见它将仅禁用提交表单。试试这个: 在HTML中:
<form name="newData">
<input type="text" ng-model="value" ng-disabled="isDisabled[key]">
{{value}}
<button ng-click="send(key)" ng-disabled="isDisabled[key]">submit</button>
</form>
请参见如何仅禁用提交表单?如何仅禁用提交表单?