首页 > 解决方案 > 如何正确传递多个参数

问题描述

我正在通过模式中的选择过滤产品。我能够按地区过滤:南部、北部、中部和西部。但我需要按地区过滤,按产品类别过滤。所以这是我的查询

getProdutosregiao(id, categoria_id) {             

return new Promise<Produto[]>((resolve, reject) => {
let sql = "SELECT TP.NOM_PATHIMAGEM, TP.NOM_PRODUTO, TS.NOM_SUBCATEGORIA, 
TP.DESC_PRODUTO, TP.VAL_PRODUTO, TP.CATEGORIA_ID " + 
        "FROM TB_PRODUTO TP " +
        "INNER JOIN TB_SUBCATEGORIA TS " +
        "ON TS.ID = TP.SUBCATEGORIA_ID " +
        "INNER JOIN TB_CATEGORIA TC " +
        "ON TC.ID = TP.CATEGORIA_ID " +
        "WHERE REGIAO_ID = " + id +
        " AND TC.ID = " + categoria_id ; 
     //       " AND SUBCATEGORIA_ID =  ";
  this.executeQuery(sql).then(data => {
  let regions = [];
  if (data!= undefined)
  data.forEach(function (row) {
  let region: Produto = { nom_pathimagem: row[0], nom_produto: row[1], 
  nom_subcategoria: row[2], desc_produto: row[3], val_produto: row[4], 
  desc_desconto: row[5], desc_experiencia: row[6], nom_endereco: row[7], 
  nom_complemento: row[8], nom_bairro: row[9], nom_cidade: row[10], cod_uf: 
  row[11], num_cep: row[12], desc_funcionamento: row[13], 
  nom_pathimagem_desc: row[14],  regiao_id: row[15], categoria_id: row[16] }
  regions.push(region);
});
resolve(regions);
}).catch(error => {
console.log(error);
});
});

过滤模式

 selecionaregiao(id, categoria_id) {
 this.db.getProdutosregiao(id, categoria_id)
 .then(data => this.produtos = data)
 .catch(error => console.log('Something want wrong!'));
 console.log('passou em tudo')
 }`enter code here`

过滤模态 HTML

 <ion-select class="selectclass" (ionChange)="selecionaregiao($event)" 
 [(ngModel)]="regiao" >
 <ion-option *ngFor="let regiao of regioes" [value]="regiao.id" 
 class="optionclass">{{regiao.nom_regiao}}</ion-option>
 </ion-select>

但我收到错误:“错误错误:没有这样的列:未定义。” 如果我删除参数(cateogira_id),它可以正常工作并且仅按区域过滤。我传递了错误的参数吗?感谢您的帮助,早上好!

标签: angularsqlitecordovaionic-framework

解决方案


您只是将 $event 传递给该方法

(ionChange)="selecionaregiao($event)

如果 categoria_id 不是事件的一部分,您需要将它作为参数传递给您的方法。


推荐阅读