2011-01-21 169 views
0

我怎麼能訪問在一個函數intialsed一個變量,但main.name是給我一個空值,我知道該值在功能initliased,或在主,而不是在飼料中!這是我的榜樣,從javascript中的函數訪問變量?

對不起,如果這似乎是一個愚蠢的問題,但我是一個新手到JavaScript,因此只要告訴我將其刪除。我想知道如果你能把它變成一個gloab什麼的。

+1

在我看來,你只是想你初始化之前訪問變量... – deceze 2011-01-21 13:09:01

+0

我試圖把它放在intilaisation後,但我仍然得到一個NULL! :(( – pingpong 2011-01-21 13:15:55

回答

2

你正在試圖獲得一個尚未初始化的變量。由於您在事件回調中分配main.name,因此只有在事件被觸發後纔會初始化。我不知道什麼是找你的應用程序的邏輯,但我猜你能初始化這個回調窗口內:

Ti.App.addEventListener('grantEntrance',function(event) { 
    main.title ='Welcome'+event.username; 
    main.url = 'main_windows/main.js'; 
    main.name = event.username; 
    main.email = event.email; 
    main.barImage='bg_content.gif'; 

    var feed = Titanium.UI.createWindow({ 
     title:'feeds', 
     url:'main_windows/feeds.js', 
     barImage:'bg_content.gif', 
     username:main.name 
    }); 
}); 

或者,裏面的回調窗口剛剛設置的用戶名屬性:

var feed = Titanium.UI.createWindow({ 
    title:'feeds', 
    url:'main_windows/feeds.js', 
    barImage:'bg_content.gif', 
}); 

Ti.App.addEventListener('grantEntrance',function(event) { 
    main.title ='Welcome'+event.username; 
    main.url = 'main_windows/main.js'; 
    main.name = event.username; 
    main.email = event.email; 
    main.barImage='bg_content.gif'; 

    feed.username = main.name 
}); 

另外,從個人的經驗:鈦是不是「填補權力」 JS的最佳方式:一些方法asynchroniusly運行,並且它會導致怪異的問題。所以,如果你是新手,它可能是一個痛苦的屁股..

反正好運:)