2016-11-22 4 views
0

я работая на ионном проекта, и это мой app.jsapp.js: Uncaught SyntaxError: отсутствует) после списка аргументов

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) after argument list missing) in line 11

Вот строка 11:

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

Я проверил все скобки, не хватает один , где проблема

ответ

1

Похоже, проблема в знаках :. Поскольку вы не передаете объект внутри, парсер выдает ошибку. Попробуйте заменить location: 0 и iosDatabaseLocation: 'Default только 0 и Default.

+0

это заставляет его работать, спасибо – sawcs

+0

Нет проблем :) Не забудьте отметить это как ответ. – praetoriaen

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 список параметров строки или объекта?

+0

Ahh слишком медленно, я просто расширил свой ответ, чтобы сказать почти то же самое – Subsurf

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

Надеется, что это помогает :)

0

это ответ

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

вместо:

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

Спасибо всем :)

Смежные вопросы