从表单提交中省略范围参数

时间:2018-08-28 13:26:17

标签: angularjs forms validation

我有两个具有共享控制器和共享字段定义的视图。我已经为输入元素之一设置了默认值。但是,此元素仅在https://localhost:8449/my-app/#/loanaccount/15/disburse处为“付款”操作呈现。

“批准”操作在https://localhost:8449/my-app/#/loanaccount/15/approve处呈现。提交批准表格时,出现验证错误" The parameter checkNumber has been passed and is not supported for this request"。似乎“批准”阶段还隐式提交了“支付”中的其他元素。

我想省略此范围参数的提交,但仅适用于批准阶段。在我的控制器中,我有:

 switch (scope.action) {
   case "disburse":                              
     resourceFactory.loanTrxnsTemplateResource.get({
       loanId: scope.accountId, 
       command: 'disburse'
     }, function (data) {
       scope.formData.checkNumber="USD"; 
     });
   case "approve":
     scope.taskPermissionName = 'APPROVE_LOAN';
     resourceFactory.loanTemplateResource.get({
       loanId: scope.accountId, 
       templateType: 'approval'
     }, function (data) {
       scope.formData.checkNumber= null;
     });
 }

关于如何排除批准阶段的此范围参数的任何指示。

1 个答案:

答案 0 :(得分:0)

有多种方法可以解决此问题。

1)您可以生成具有有效参数的另一个对象并发送清除请求。

2)或可以删除​​不需要的参数,就像这样。

delete scope.formData['checkNumber'];

但是有时候这会导致问题,因为发生了表单引用。

3)或更改“批准规则”以仅验证所需的参数,并在请求中出现任何不需要的参数时忽略(不发回任何异常/错误)。