使用AngularJS显示sqlite DB中的数据

时间:2014-07-18 04:33:43

标签: javascript android json angularjs sqlite

我喜欢从Android应用程序收集数据并将它们存储到sqlite数据库中 - 到目前为止没问题。 但现在我想使用AngularJS,ng-repeat命令列出这些数据。 我通过db.transaction(函数(tx)tx.execSql ...)从数据库获取数据,但是现在如何格式化数据行以便ng-repeat可以读取它们? 我尝试了一系列对象,我尝试构建一个JSON字符串 - 两者都不起作用,我得到了一个ngRepeat错误。

var app = angular.module('demo',[]);
app.controller("MainController", function($scope){
    // gets the tasks from the DB as json object
    db.transaction(function(tx){           
        tx.executeSql("SELECT task,task_detail,task_date FROM task", [],    
        function(tx, rs){    
            var rows = rs.rows;
            if (rows.length>0) {
                var json_arr =  [];  
                for(var i = 0; i < rows.length; i++) {
                    var row = rows.item(i);
                    var obj = {task: row.task,detail:row.task_detail,datum:row.task_date};
                    json_arr.push(obj);
                }                         
            }    
            var json_str = JSON.stringify(json_arr);
            alert("json_str: "+ json_str);  // WORKING !
            sessionStorage.tasks = json_arr; // to get result out of db.transaction...
            })  
        });  // end db.transaction
        $scope.tasks = sessionStorage.tasks;

- &GT;当我显示{{tasks}}时,它显示为:[object,object] 并且ng-repeat不起作用

否则,如果我使用字符串化的json,它会在{{tasks}}中正确显示,但ng-repeat会再次导致错误。

另一个真实的&#34;脏&#34;将查询结果输入$ scope的方法是sessionStorage的事情 - 我不喜欢这种方式,但我不能看到另一种可能性将$ scope变量设置为数据库查询的JSON(或其他)结果。也许有人有更好的主意? ;)

有什么想法吗?非常感谢,Chris

0 个答案:

没有答案