0
votes

I'm trying to pass data from a main window when a button is pressed on that page using require(), like so:

mapview.addEventListener('click', function(evt) {
    var detailWindow = Ti.UI.createWindow({
            backgroundColor: '#333333',
            navTintColor: '#FFF',
            barColor: '#222222',
            itemID: evt.annotation.myid
        });
        Ti.API.info('detailWindow.itemID = ' + detailWindow.itemID); 
        // displays expected value from database eg 12345

        detailWindow = require('ui/iphone/detail');
        var detailWin = new myWindowHere(detailWindow.itemID);
}

In detail.js:

function myWindowHere(myItemID) {
    var myDetailsWin = Titanium.UI.createWindow({
    //properties here
    });
    Ti.API.info('myItemID = ' + myItemID); // this log is never 
    var facilityID = myItemID;

    myWindowHere.open();

    return myDetailsWin;
};
module.exports = myWindowHere;  

But, I've gone wrong somewhere as I'm getting error message: Can't find variable: myItemID

Please help! Many thanks

1
you create a window in detailWindow and override that variable with the require statement. Inside that you create a new window, why should myItemID be visible in there? Add methods to your module (e.g. myDetailsWin.passParameter = function(){} to pass in variables or add them to the require statement as a 2nd parametermiga
It looks like you need to learn a couple javascript basics. new myWindowHere(detailWindow.itemID); doesn't do anything, because the context doesn't know that object. myWindowHere.open(); doesn't point to anything either. And as @miga said you're overriding an object and expect the original to still exist... that doesn't work like that.Rene Pot
Thanks for the feedback. Any code examples on how to resolve this? I am indeed new to javascript, so finding this tricky. I need to populate detailWindow with data that is selected on main page, already pulled from database...Mr_P

1 Answers

0
votes

try this :

mapview.addEventListener('click', function(evt) {
    var detailWindow = Ti.UI.createWindow({
        backgroundColor: '#333333',
        navTintColor: '#FFF',
        barColor: '#222222',
        itemID: evt.annotation.myid
    });
    Ti.API.info('detailWindow.itemID = ' + detailWindow.itemID); 
    // displays expected value from database eg 12345

    var detailWin = require('ui/iphone/detail').myWindowHere(detailWindow.itemID);
}