1

I like to collect data from an android app and store them into sqlite DB - no problem so far. But now I want to list these data using AngularJS, ng-repeat command. I take the data from the DB via db.transaction(function(tx) tx.execSql...) but now how to format the data rows so that ng-repeat can read them ? I tried an array of objects, I tried building a JSON string - both not working, I got a ngRepeat error.

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;

-> when i display {{tasks}} it appears as: [object,object] and ng-repeat doesnt work

Otherwise if i use the stringified json, it displays correctly in {{tasks}} but ng-repeat causes again error.

Another real "dirty" way to get the result of the query into $scope is the sessionStorage thing - I dont like it this way but I cant see another possibility to set the $scope variable to the JSON (or whatever) result of the DB query. Maybe someone has a better idea ? ;)

Any ideas ? Thanks a lot, Chris

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.