在原生脚本应用程序中显示sqlite数据库数据有问题
Having issues displaying sqlite db data in nativescript application
我的应用程序有一个计分板页面,应该从sqlite数据库中获取数据,并在ListView中显示它的onNavigatingTo页面,但它没有按预期的那样做。
显示结果的xml页面:
<Page xmlns="http://schemas.nativescript.org/tns.xsd" loaded="pageLoaded" navigatingTo="onNavigatingTo">
<ActionBar title="Scoreboard">
<NavigationButton text="Back" android.systemIcon="ic_menu_back" tap="homeTap"/>
</ActionBar>
<StackLayout orientation="vertical">
<Label text="Your Performance Sheet"></Label>
<ListView items= "{{results}}" >
<ListView.itemTemplate>
<Label text="{{testname}}"/>
<Label text="{{score}}"/>
<Label text="{{percent}}"/>
</ListView.itemTemplate>
</ListView>
</StackLayout>
</Page>
scoreboard-view-model:
var Observable = require("data/observable").Observable;
var ObservableArray = require("data/observable-array").ObservableArray;
var Sqlite = require("nativescript-sqlite");
function scoreViewModel (database) {
var viewModel = new Observable();
viewModel.results = new ObservableArray([]);
viewModel.select = function () {
this.results = new ObservableArray([]);
database.all("SELECT * FROM scores").then(rows => {
for (var row in rows) {
this.results.push(rows[row]);
}
}, error => {
console.log("SELECT ERROR", error);
})
}
viewModel.select();
return viewModel;
}
exports.scoreViewModel = scoreViewModel;
我从分数表中选择所有数据并将其推入viewModel。结果数组,该数组已经绑定到视图。
.js:
var observable = require("data/observable");
var scoreViewModel = require("./scoreboard-view-model").scoreViewModel;
var page;
var Sqlite = require("nativescript-sqlite");
exports.onNavigatingTo = function (args) {
page = args.object;
(new Sqlite("scoreboard.db")).then(db => {
db.execSQL("CREATE TABLE IF NOT EXISTS scores (id INTEGER PRIMARY KEY AUTOINCREMENT, testname TEXT, score TEXT, percent TEXT)")
.then(id => {
page.bindingContext = scoreViewModel(db);
}, error => {
console.log(error)
});
}, error => {
console.log(error);
});
}
有人请帮助我得到的数据显示在列表视图。
我通过编辑scoreboard-view-model.js文件,精确地在viewModel中得到了它的工作。选择功能:
viewModel.select = function () {
//the line below was changed to this...
//testname, score, and percent are column names in the scores table
database.all("SELECT testname, score, percent FROM scores").then(rows => {
for (var row in rows) {
//the line below was changed too...
viewModel.results.push({testname: rows[row][0], score: rows[row][1], percent: rows[row][2]});
}, error => {
console.log("SELECT ERROR", error);
})
}
。它现在像预期的那样工作。感谢TJ Vantoll的帮助。真的感激。
相关文章:
- PHP:显示sqlite数据库中的html格式数据,使用tinymce保存
- 是否可以使用NativeScript使用Sqlite数据库
- 使用Javascript将多条记录插入SQLite数据库时出错
- 连接SQlite数据库
- 以html形式显示sqlite数据库中的数据(phonegap)
- 如何访问Chrome创建的SQLITE数据库
- 使用 SQL .js在 JavaScript 中加载 SQLite 数据库
- Phonegap应用程序SQLite数据库初始设置
- 将捕获的图像存储到SQlite数据库中?(科尔多瓦)
- 将SQLite数据库存储在IndexedDB中
- 有没有一种简单的方法可以通过javascript将MySQL文件导入SQLite数据库
- 我想将长文本文档解析为SQLite数据库.如何转义所有不支持的字符
- Windows 8应用程序Javascript和SQlite(数据库已锁定)
- 从sqlite数据库查询数据结果文件名
- 如何在PhoneGap应用程序中使用SQLite数据库
- 从sqlite数据库获取结果
- 为什么我可以添加一个新主题,但我可以't向SQLite数据库添加新注释
- 用PHP读取SQLite数据库?(使用sencha touch sqlite制作)
- 使用 sql.js 从磁盘读取 SQLite 数据库
- PhoneGap - 读取预打包的 sqlite 数据库