【问题标题】:Omit scope parameter from form submission从表单提交中省略范围参数
【发布时间】:2018-08-28 13:26:17
【问题描述】:

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

Approve 操作呈现在 https://localhost:8449/my-app/#/loanaccount/15/approve。当我提交 Approve 表单时,我收到验证错误" The parameter checkNumber has been passed and is not supported for this request"。 Approve 阶段似乎也隐含地提交了来自 Disburse 的附加元素。

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

 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;
     });
 }

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

【问题讨论】:

    标签: angularjs forms validation


    【解决方案1】:

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

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

    2) 或者您可以像这样删除不需要的参数。

    delete scope.formData['checkNumber'];
    

    但有时这会导致出现问题,因为会发生表单引用。

    3) 或者替换“批准规则”以仅验证所需参数并忽略(不发回任何异常/错误)如果请求中出现任何不需要的参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多