【发布时间】:2016-10-03 08:16:08
【问题描述】:
我有一个关于 Ionic 的项目,我需要在主页中呈现数据库的一些信息,类似于 TODO 程序。
我已经有一些关于数据库的信息,我正在尝试呈现项目列表,但我遇到了下一个问题:
- 首先加载主页没有任何结果
- 然后将数据库中的数据加载并打印到屏幕上
问题是我希望视图等到加载数据库信息直到显示任何内容,我想知道是否可以使用某种加载图标。
我已经按照这里的答案:Open database before main controller is called in Ionic and SQlite
我的数据库初始化工作正常,但正如我所说,数据是在视图呈现后加载的。
我尝试过使用$ionicLoading,但没有得到任何好的结果
这是我的看法:
.controller('homeCtrl', function ($scope, $state, $cordovaSQLite, DB) {
$scope.$on('$ionicView.enter', function() {
tasks = []
var query = "SELECT * FROM task;";
$cordovaSQLite.execute(DB.db, query, []).then(function(results) {
if(results.rows.length > 0) {
for (i=0; i<results.rows.length; i++){
console.log("SELECTED -> " + results.rows.item(0).title);
$scope.tasks.push(results.rows.item(i))
}
} else {
console.log("No results found");
}
}, function (err) {
$scope.tasks = [];
console.error(err);
});
$scope.tasks = tasks;
});
})
这是我现在遇到的问题的视频示例:
【问题讨论】:
-
你试过在路由中解析吗?
-
什么意思?
-
也许你可以在你的路由中使用 resolve 来调用一个服务,你可以从数据库中获取数据......因为它会在进入视图之前首先执行......也许它会解决问题(Y)只是一个猜想 。自己没试过
-
嗯,听起来不错,如果我能在进入视图之前获取数据就完美了。我会查看文档,谢谢!
-
是的。我也这么认为..祝你好运:)