我在离子项目上工作,这是我的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');
我检查了所有括号,没有遗漏 问题在哪里
答案 0 :(得分:1)
问题出现在:
标志中。由于您没有在内部传递对象,因此解析器会抛出错误。尝试仅使用location: 0
和iosDatabaseLocation: 'Default
替换0
和Default
。
答案 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');
全部谢谢:)