2011-01-21 176 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运行,并且它会导致怪异的问题。所以,如果你是新手,它可能是一个痛苦的屁股..

反正好运:)