Return var from js file to qml.



  • I'm trying to return a js var to my main qml but I'm getting this error.
    @Error: Cannot assign [undefined] to QString@

    here is my js code.
    @var index_count = 0
    var up_check = 0
    function get_db(a, up_check) {

    var db = LocalStorage.openDatabaseSync("DB5", "1.0", "The Example QML SQL!", 1000000);
    db.transaction(
    function(tx) {
    /* tx.executeSql('CREATE TABLE IF NOT EXISTS Greeting(salutation TEXT, salutee TEXT)');
    for ( var z=0; z<1000; z++){
    tx.executeSql('INSERT INTO Greeting VALUES(?, ?)', [ 'Movie', z ]);
    }
    */
    var rs = tx.executeSql('SELECT * FROM Greeting');
    var r = ""
    for(var i = 0; i < a; i++) {
    if (i>index_count-1 && up_check ===0)
    r += rs.rows.item(i).salutation + ": " + rs.rows.item(i).salutee + "\t\t"

                     if (up_check === 1){
                         var size_check =0
                         if (i >index_count-11   && size_check !==9)  {
                           r += rs.rows.item(i).salutation + ": " + rs.rows.item(i).salutee + "\t\t"
                          size_check++
                         }
                      }
                  }           
           console.log(r);
           index_count=a;             
           return r;
        })}@
    

    and my main qml mousearea in which I'm trying get the var r

    @
    ...
    property string globalForJs: "It's";
    ...
    ..

    MouseArea {id: movie_mouse_mm; x: 394; y: 221; width: 104; height: 100;
    onClicked:{
    film_image.state = "rotated"
    playbanner.start()
    up_down.start()
    globalForJs=Logic.get_db(5,0)
    console.log(globalForJs)}
    }
    @



  • Hello,

    you have some nested function definitions but you don't actually call them, hence the return is undefined.

    Try moving the inner function definition aside and calling it as an argument to the transaction() function instead. You will have to provide a variable to assign to as well, since currently you do nothing with the returned variable in the outer function.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.