IonPicker显示错误的值

时间:2019-07-06 03:23:18

标签: angular ionic-framework ionic4

我正在制作一个Ionic App,它显示选项数组的选定文本,我使用的是离子选择器组件(互联网上没有太多文档),当我用console.log记录值时,一切工作正常索引在控制台中显示正确的值,我也使用警报来显示所选值作为消息的一部分,但是例如当我选择第一个值时,警报不显示任何值,那么如果我选择警报显示的第一个值的第二个值,我不明白这是怎么回事,因为console.log具有正确的值。

这是我的两个功能。

async selectHora() {
    const times: PickerOptions = {
      cssClass: 'horasSelect',
      buttons: [
        {
          text: 'Cancelar',
          role: 'cancel',
          cssClass: 'btnCancel'
        },
        {
          text: 'Confirmar',
          handler: (value) => {
            value = this.horaSeleccionada;
            console.log('confirmacion', this.horaSeleccionada);
            this.confirmacion(value);
          }
        }
      ],
      columns: [
        {
          name: 'Horas',
          options: [
            {text: '8:00 - 9:00', value: 1},
            {text: '9:00 - 10:00', value: 2},
            {text: '10:00 - 11:00', value: 3},
            {text: '11:00 - 12:00', value: 4},
            {text: '12:00 - 13:00', value: 5},
            {text: '13:00 - 14:00', value: 6},
            {text: '14:00 - 15:00', value: 7},
            {text: '15:00 - 16:00', value: 8},
            {text: '16:00 - 17:00', value: 9},
            {text: '17:00 - 18:00', value: 10}
          ]
        }
      ]
    };
    const picker = await this.picker.create(times);
    picker.present();
    picker.onDidDismiss().then(async data => {
      const col = await picker.getColumn('Horas');
      console.log('Esta es la columna ', col);
      this.horaSeleccionada = col.options[col.selectedIndex].value;
      console.log(this.horaSeleccionada);
      // this.confirmacion();
    });
  }

async confirmacion(value) {
    const alert = await this.alertCtrl.create({
      header: 'Confirmación Pedido',
      subHeader: 'Si desea cambiar la hora, seleccione cancelar',
        message: 'Su pedido será entregado entre las ' + value,
        buttons: [
          {
            text: 'OK',
            handler: () => {
              console.log('ok texto', this.horaSeleccionada);
              // this.router.navigateByUrl('/orderfinished');
            }
          }
        ],
    });

    await alert.present();
  }

2 个答案:

答案 0 :(得分:0)

  

嗨,我已经解决了您的问题

Tieson T.

错误

 .input_helper {
    resize:none;
}

正确的方式

value = this.horaSeleccionada;

工作示例

this.horaSeleccionada =value;

答案 1 :(得分:0)

似乎您为变量分配了错误的方式value = this.horaSeleccionada; 错误 this.horaSeleccionada = value 正确,您可以检查并告诉我它是否有效