我有一个现有的数据要插入sqlite中。我这样做了:
var db = null;
function createDatabase($cordovaSQLite){
if (window.cordova) {
db = $cordovaSQLite.openDB({ name: "test.db" });
}else{
db = window.openDatabase("test.db", '1.0', 'database', 1024 * 1024 * 100);
}
var classes = "CREATE TABLE IF NOT EXISTS classes (id integer primary key, name text)";
$cordovaSQLite.execute(db, classes);
var classesQuery = "INSERT INTO classes (name) VALUES 'class1'"
$cordovaSQLite.execute(db, classesQuery);
}
我在应用程序准备就绪时调用了这个函数
$ionicPlatform.ready(function() {
if(window.cordova && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
cordova.plugins.Keyboard.disableScroll(true);
}
if(window.StatusBar) {
StatusBar.styleDefault();
}
createDatabase($cordovaSQLite);
});
每次刷新浏览器时都会插入数据并插入。
我希望应用程序一次插入数据,并可以使用存储的数据。
答案 0 :(得分:0)
因此,您必须首次定义应用运行。在app.js中,在函数
中$ionicPlatform.ready(function() {
你应该创建它(ApplicationInitialRun是一个服务):
if (ApplicationInitialRun.isInitialRun()) {
ApplicationInitialRun.setInitialRun(false);
}
和services.js
.factory('ApplicationInitialRun', function ($window,ConnectivityMonitor,$ionicPopup) {
return {
setInitialRun: function (initial) {
$window.localStorage["initialRun"] = (initial ? "true" : "false");
},
isInitialRun: function () {
var value = $window.localStorage["initialRun"] || "true";
$window.localStorage['newuser']="new";
return value == "true";
}
};
})
所以,你可以在初始运行中调用你的函数,或者你可以看到我使用$ window.localStorage ['newuser'] =“new”;。有了这个我能够检查例如
if($window.localStorage['newuser']=="new"){
并在用户是否为新用户时调用函数(在您的情况下,您可以在插入函数后检查localstorage中是否存在该值)。
希望有所帮助。