【问题标题】:Using Ion select dynamic使用离子选择动态
【发布时间】:2019-01-11 16:32:40
【问题描述】:

我在我的项目中添加了一个 Ion-select,并且我试图在我点击时进行过滤,只显示该点击的信息。但由于某种原因,它给了我错误以及我在这一切中的新手,我不知道它会是什么。如果有人可以帮助我,我会很高兴。我很抱歉翻译成英文。

HTML

<ion-select (ionChange)="selecionaregiao()" [(ngModel)]="regiao">
    <ion-option value="opt1"></ion-option>
    <ion-option value="opt2">Zona Oeste</ion-option>
    <ion-option value="opt3">Zona Norte</ion-option>
    <ion-option value="opt4">Zona Sul</ion-option>

</ion-select>

数据库.TS

 getRegiao(pregiao: string){
return new Promise<Regiao[]>((resolve, reject) => { 

  let sql = "SELECT * FROM TB_REGIAO" + pregiao;
  console.log(sql);          
  this.executeQuery(sql).then(data => {
    let regioes = [];
    data.forEach(function (row) {
      let regiao: Regiao = { nom_regiao: row[0]}
      regioes.push(regiao);
    });
    resolve();

  }).catch(error => {
    console.log(error);
  });

});


}

和函数.ts

selecionaregiao(pregiao: string) {
this.db.getRegiao(pregiao)
        .then(data => this.regioes = data)
        .catch(error => console.log('Something want wrong!'));
}

【问题讨论】:

    标签: html sqlite cordova ionic-framework ionic3


    【解决方案1】:

    在您的函数 ts 中,您正在使用参数定义函数。

    selecionaregiao(pregiao: string) {
    this.db.getRegiao(pregiao)
            .then(data => this.regioes = data)
            .catch(error => console.log('Something want wrong!'));
    }
    

    但是在 html 中你没有传递任何参数。

    所以改变你的离子选择可能会解决问题

    <ion-select (ionChange)="selecionaregiao(regiao)" [(ngModel)]="regiao">
        <ion-option value="opt1"></ion-option>
        <ion-option value="opt2">Zona Oeste</ion-option>
        <ion-option value="opt3">Zona Norte</ion-option>
        <ion-option value="opt4">Zona Sul</ion-option>
    
    </ion-select>
    

    【讨论】:

    • 我收到错误:“错误错误:没有这样的表:Database.webpackJsonp.318.Database.handleError (sql.js:20) at Database.webpackJsonp.318.Database.exec ( sql.js:20) 在 XMLHttpRequest.xhr.onload [as __zone_symbol__ON_PROPERTYload] (database.ts:114) 在 XMLHttpRequest.H (polyfills.js:3) 在 t.invokeTask (polyfills.js:3) 在 Object.onInvokeTask ( core.js:4751) at t.invokeTask (polyfills.js:3) at r.runTask (polyfills.js:3) at e.invokeTask [as invoke] (polyfills.js:3) at p (polyfills.js: 2)"
    • 在您的 database.ts 中,检查 'pregiao' 是否正确传递。还要确保 "TB_REGIAO" + pregiao 匹配表名。
    • 我如何检查这个?我的数据库就像我在问题中发布的那样。很抱歉我还在学习,所以我的database.ts确实应该有问题,但我不知道如何找出来
    • 是的,使用 sqlite
    • 您可以查看此帖子,以检查表是否存在,stackoverflow.com/questions/1601151/…
    猜你喜欢
    • 2018-09-25
    • 1970-01-01
    • 2020-05-13
    • 2020-01-27
    • 2021-05-15
    • 2018-07-30
    • 1970-01-01
    • 1970-01-01
    • 2019-09-18
    相关资源
    最近更新 更多