每个数据都不是函数

时间:2017-06-19 10:57:37

标签: javascript angular typescript ionic3

我正在使用Ionic 3创建一个示例程序,其中我使用了SQLite来存储数据。我使用了一个常见的插入查询,它将拆分列和值并将这些细节存储在数据库中,但是当我尝试运行程序时,它向我显示每个错误数据都不是函数。 我已经使用每个循环来分割列和值,但我在Ionic 1中使用了相同的 - AngularJS JavaScript,它工作正常。任何人都告诉我下面的代码有什么问题?

?specs=1:Red,Blue;3:LED,OLED

错误部分:

insert(tblName, data) {
console.log('insert function in db got called: ', data);
this.columns = [];
this.values = [];
data.forEach(function (value, column) {
  this.columns.push(column);
  this.values.push(value);
  console.log('columns', this.columns);
  console.log('values', this.values);
});
console.log('columns: ', this.columns);
console.log('values: ', this.values);
var question = (Array(this.columns.length + 1).join('?,')).slice(0, -1);
return new Promise(resolve => {
  var insertQuery = 'INSERT INTO ' + tblName + ' (' + this.columns.join(', ') + ') VALUES ('  + question + ');';
  console.log('insertQuery: ', insertQuery);
  this.db.executeSql(insertQuery, this.values, (r) => {
    console.log('Inserted... Sucess..', this.values);
    this
      .getRows()
      .then(s => {
        resolve(true)
      });
  }, e => {
    console.log('Inserted Error', e);
    resolve(false);
  })
})  
}

1 个答案:

答案 0 :(得分:0)

首先,它可能是类型错误,您确定dataArray吗?如果 true ,请转到下一个点,否则,您只是写错了javascript而没有错误。

问题是,Typescript必须知道你在做什么样的参数。

insert(tblName, data) {
  console.log('insert function in db got called: ', data);

  this.columns = [];
  this.values = [];

  data.forEach(function (value, column) {
    this.columns.push(column);
    this.values.push(value);

    console.log('columns', this.columns);
    console.log('values', this.values);
  });
}

插入方法记录在任何地方? 你能编辑它吗?

insert(tbName: string, data: any[]) {}