响应为false时如何删除行数据,将它添加为true作为angular2中的响应

时间:2018-10-25 11:34:03

标签: angular typescript

Hai我有一组在响应为true的情况下推送的数据,现在在提交按钮之前,我正在更改选项,以便我将响应为false,因此在这种情况下,我需要删除推送到数组。

TS:

onChangeMedication(value, rowData) {
    let exe = this.exeTypeNumber(value);
    this.medicationTableValue.map(details => {
      let medicationObj = { ...medicationFields };
      if (details.code === rowData.code) {
        if (value != '17587') {
          let params = { PatientId: this.userId, ExeType: exe, TableId: 'medication', Param1: rowData.name, Param2: rowData.date ? new DatePipe('en').transform(rowData.date, 'yyyy-MM-dd HH:mm:ss') : null, Param3: null }
          this.emrservice.ccdRecord(params)
            .subscribe((res) => {
              this.validStatus(res.Body.Data, rowData);
              if (res.Body.Data) {
                this.exportCCDSuperObj.medication.push(medicationObj);
              } 
            });
        }
      };
    });
  }

这使api响应为true或false

validStatus(data, rowData) {
    this.isValidItems = data
    if (!this.isValidItems) {
      rowData.showNoStatus = true;
      rowData.showYesStatus = false;
      this.isDisabled = false;
    } if (this.isValidItems) {
      rowData.showYesStatus = true;
      rowData.showNoStatus = false;
      this.isDisabled = true;
    }

  }

HTML:

<td>
              <select (change)="onChangeMedication($event.target.value,rowData)" [value]="defaultValue">
                <option value=''>Select Record</option>
                <option *ngFor="let sType of validType" [value]='sType.Id'>{{sType.Description}}</option>
              </select>
            </td>
            <i class="fa fa-times" aria-hidden="true" *ngIf="rowData.showNoStatus"></i>
            <i class="fas fa-check" *ngIf="rowData.showYesStatus"></i>

2 个答案:

答案 0 :(得分:0)

您可以通过生成不包含特定项(例如

)的新数组来从阵列中删除该项
this.yourArray = this.yourArray.filter(element => element.property == “Somthing”);

这将生成一个新数组,并将其值放入新数组中,而没有任何元素与您的方程式匹配。

答案 1 :(得分:0)

我尝试过这种方式,并且能够按照我的要求进行操作。 因此,现在我可以删除单击响应更改后添加到数组的项目

TS:

onChangeMedication(value, rowData) {
    let exe = this.exeTypeNumber(value);
    this.medicationTableValue.map(details => {
      let medicationObj = { ...medicationFields };
      if (details.code === rowData.code) {
        if (value != '17587') {
          let params = { PatientId: this.userId, ExeType: exe, TableId: 'medication', Param1: rowData.name, Param2: rowData.date ? new DatePipe('en').transform(rowData.date, 'yyyy-MM-dd HH:mm:ss') : null, Param3: null }
          this.emrservice.ccdRecord(params)
            .subscribe((res) => {
              this.validStatus(res.Body.Data, rowData);
              if (res.Body.Data) {
                this.exportCCDSuperObj.medication.push(medicationObj);
              } else {
                var index = this.exportCCDSuperObj.medication.indexOf(rowData);
                this.exportCCDSuperObj.medication.splice(index, 1);
              }
            });
        }
      };
    });
  }