重用屏幕进行编辑

时间:2018-09-28 02:48:50

标签: angular typescript ionic-framework ionic2 ionic3

我有一个带日期字段的屏幕,有些带有框,我需要填充它们以重新美化屏幕以进行编辑,该屏幕用于注册和编辑,但是我无法将数据传递到组合框字段。银行返回的数据是该选项的ID。

页面代码:

    <ion-grid  *ngFor="let editar of lista_despesa_ed">

        <ion-row>
          <ion-col col-6 class="sem-espaco">
            <ion-item>
              <ion-label floating>Data</ion-label>
              <ion-datetime class="input-color" displayFormat="DD MM YYYY" pickerFormat="DD MM YYYY" [(ngModel)]="data"></ion-datetime>
            </ion-item>
            <h6 *ngIf="errorData" class="error"> {{messageData}}</h6>
          </ion-col>
        </ion-row>

        <ion-row>
          <ion-col col-12 class="sem-espaco">
            <ion-list>
              <ion-item>
                <ion-label floating>Centro de Custo</ion-label>
                <ion-select (ionChange)="resetCusto()" [(ngModel)]="custo" class="input-color">
                  <ion-option *ngFor="let custo of lista_centroCusto" [selected]="editar.IDCentroCusto" value="{{custo.Chave}}">{{custo.Valor}}
                  </ion-option> //The error occurs here
                </ion-select>
              </ion-item>
              <h6 *ngIf="errorCusto" class="error"> {{messageCusto}}</h6>
            </ion-list>
          </ion-col>
        </ion-row>

打字稿文件:

  ionViewDidEnter() {
    if (this.global.acao === "I") {
      this.carregaCB();
    } else if (this.global.acao === "E") {
      this.carregaCB();
      this.AprovacaoProvider.listaDetalhe().then((data) => {
        this.lista_despesa_ed = data;
      })
    }
  }

1 个答案:

答案 0 :(得分:1)

由于您在该组合框中使用了[(ngModel)],并且custo是绑定到该组件的组件的属性,因此您只需将已选择的选项的值分配给{{ 1}}属性在您的组件文件中:

custo

然后在视图中:

this.custo = editar.IDCentroCusto; // Not sure if this is the right property

请注意,我还建议对<ion-select [(ngModel)]="custo" class="input-color"> <ion-option *ngFor="let custo of lista_centroCusto" [value]="custo.Chave">{{custo.Valor}}</ion-option> </ion-select> 使用属性绑定(而不是字符串插值),例如:value