【问题标题】:Ionic and SQLite wait until database info is loadedIonic 和 SQLite 等到数据库信息被加载
【发布时间】: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;
    });

})

这是我现在遇到的问题的视频示例:

https://youtu.be/H2fUYQuV3xg

【问题讨论】:

  • 你试过在路由中解析吗?
  • 什么意思?
  • 也许你可以在你的路由中使用 resolve 来调用一个服务,你可以从数据库中获取数据......因为它会在进入视图之前首先执行......也许它会解决问题(Y)只是一个猜想 。自己没试过
  • 嗯,听起来不错,如果我能在进入视图之前获取数据就完美了。我会查看文档,谢谢!
  • 是的。我也这么认为..祝你好运:)

标签: sqlite ionic-framework


【解决方案1】:

最后我按照在路线中使用 resolve 的建议找到了解决方案。

.state('home', {
    url: '/',
    templateUrl: 'templates/home.html',
    controller: 'homeCtrl',
    resolve: {
        tasks: function(DB) {
                return DB.getTasks();
                    });
        }
    }
})

我有一个名为 DB 的工厂,我有一些函数可以从数据库中检索数据。在此示例中,我在使用 DB.getTasks() 输入 URL 之前加载任务

要加载路径上解析的变量tasks,我必须在函数上添加变量名称,如下所示:

app.controller('homeCtrl', function (tasks) {

    $scope.tasks = tasks;
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-19
    • 1970-01-01
    • 1970-01-01
    • 2012-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多