参数列表

时间:2016-11-22 11:57:54

标签: javascript angularjs ionic-framework

我在离子项目上工作,这是我的app.js

var db = null; 

angular.module('starter', ['ionic','starter.controllers', 'ngCordova'])

.run(function($ionicPlatform) {
  $ionicPlatform.ready(function() {
    if(window.cordova && window.cordova.plugins.Keyboard) {
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
      cordova.plugins.Keyboard.disableScroll(true);
     db = $cordovaSQLite.openDB("my.db", location: 0, iosDatabaseLocation: 'Default'); 
    $cordovaSQLite.execute(db, 
        "CREATE TABLE IF NOT EXISTS contacts(id integer primary key, firstname text, lastname text, mobile number, email text)"); 

    } else {

    db = openDatabase("my.db", '1.0', "My WebSql ", 2*1024*1024);

    db.transaction( function( tx) {
        tx.executeSql("CREATE TABLE IF NOT EXISTS contacts(id integer primary key, firstname text, lastname text, mobile number, email text"));
    }       

    }
    if(window.StatusBar) {
      StatusBar.styleDefault();
    }
  });
})

错误是

  参数列表后面的

app.js:11 Uncaught SyntaxError:missing)   第11行缺少)

这是第11行:

 db = $cordovaSQLite.openDB("my.db", location: 0, iosDatabaseLocation: 'Default');

我检查了所有括号,没有遗漏 问题在哪里

4 个答案:

答案 0 :(得分:1)

问题出现在:标志中。由于您没有在内部传递对象,因此解析器会抛出错误。尝试仅使用location: 0iosDatabaseLocation: 'Default替换0Default

答案 1 :(得分:1)

整个地方都缺少括号和格式错误的代码。使用代码编辑器为代码着色(例如Atom)并使用适当的缩进来检测这些错误。

var db = null; 
angular.module('starter', ['ionic','starter.controllers', 'ngCordova'])
.run(function($ionicPlatform) {
  $ionicPlatform.ready(function() {
    if(window.cordova && window.cordova.plugins.Keyboard) {
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
      cordova.plugins.Keyboard.disableScroll(true);
      db = $cordovaSQLite.openDB("my.db", location: 0, iosDatabaseLocation: 'Default'); 
      $cordovaSQLite.execute(db, 
        "CREATE TABLE IF NOT EXISTS contacts(id integer primary key, firstname text, lastname text, mobile number, email text)"); 

    } else {

      db = openDatabase("my.db", '1.0', "My WebSql ", 2*1024*1024);

      db.transaction( function( tx) {
        tx.executeSql("CREATE TABLE IF NOT EXISTS contacts(id integer primary key, firstname text, lastname text, mobile number,email text)");
      });       

    }
    if(window.StatusBar) {
      StatusBar.styleDefault();
    }
  });
});

您可能还需要确保根据openDB规范正确格式化此行:

db = $cordovaSQLite.openDB("my.db", location: 0, iosDatabaseLocation: 'Default'); 

location:0确实看起来很奇怪。 openDB是否需要字符串参数列表或对象?

答案 2 :(得分:0)

我认为,你应该将参数包装在一个对象中。

尝试更改此行

db = $cordovaSQLite.openDB("my.db", location: 0, iosDatabaseLocation: 'Default');

到此。

db = $cordovaSQLite.openDB({name: "my.db", location: 0, iosDatabaseLocation: 'Default'});

db = $cordovaSQLite.openDB("my.db", 0, "Default");

希望这会有所帮助:)

答案 3 :(得分:0)

这是答案

db = $cordovaSQLite.openDB("my.db", 0, "Default");

而不是:

db = $cordovaSQLite.openDB("my.db", location: 0, iosDatabaseLocation: 'Default'); 

全部谢谢:)