如何正确传递多个参数

时间:2018-10-04 16:06:05

标签: angular sqlite cordova ionic-framework

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

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);
});
});

Filtro-Modal.TS

 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`

Filtro-Modal-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),它将正常工作并仅按区域过滤。我传递的参数错误吗?谢谢您的帮助,早上好!

1 个答案:

答案 0 :(得分:0)

您只将$ event传递给方法

(ionChange)="selecionaregiao($event)

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