选择选项中获取值

选择选项中获取值

我有一个名为options的对象数组。
这是我的HTML代码

    <ion-item>
        <ion-label>place</ion-label>

        <ion-select [(ngModel)]="place" (click)="optionsFn(item);">
          <ion-option value="item" *ngFor="let item of options">{{item.name}} &nbsp;&nbsp;{{item.price}}</ion-option>
        </ion-select>
      </ion-item>

{{salespriceOp}}

{{quantityOp}}

这是我的.ts文件代码
product_option_value_idOp
  priceOp
  salespriceOp
  quantityOp
  skuOp
  nameOp

  options =  [
          {
            "product_option_value_id": "45",
            "name": "Bangalore Auto",
            "quantity": "12",
            "sku": "56876",
            "price": "100.00",
            "salesprice": "50"
          },
          {
            "product_option_value_id": "51",
            "name": "Hyderabad Auto",
            "quantity": "23",
            "sku": "56543",
            "price": "200.00",
            "salesprice": "60"
          },
          {
            "product_option_value_id": "52",
            "name": "Delhi Auto",
            "quantity": "14",
            "sku": "98767",
            "price": "300.00",
            "salesprice": "80"
          }
        ];
  constructor(public navCtrl: NavController) {

  }

  optionsFn(item) {//here item is an object
    console.log(item);
    this.product_option_value_idOp = item.product_option_value_id;
    this.priceOp = item.price;
    this.salespriceOp = item.salesprice;
    this.quantityOp = item.quantity;
    this.skuOp = item.sku;
    this.nameOp = item.name;
  }

我可以调用函数,但在console.log(item)中未定义

最佳答案

有几件事一起导致了这个错误。
第一个更改是,不使用这样的click事件:

(click)="optionsFn(item);

你应该像这样使用离子暴露的ionChange事件:
(ionChange)="optionsFn();"

还要注意,由于使用[(ngModel)]="place"将select元素绑定到组件的某个属性,因此不需要将该项作为参数发送,因为触发this.place事件时,ionChange将是选定项。
这就是为什么您的optionsFn方法看起来像这样:
public optionsFn(): void { //here item is an object
    console.log(this.place);

    let item = this.place; // Just did this in order to avoid changing the next lines of code :P

    this.product_option_value_idOp = item.product_option_value_id;
    this.priceOp = item.price;
    this.salespriceOp = item.salesprice;
    this.quantityOp = item.quantity;
    this.skuOp = item.sku;
    this.nameOp = item.name;
  }

关于angular - 如何从 ionic 选择选项中获取值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39503876/

10-12 06:18