2013-12-19 3 views
4

json 응답을 새 창에서 열고 싶습니다. 많은 시도를했지만 개미 성공을 얻지 못했습니다. 아무도 나를 도와 줄 수 있다면 감사하겠습니다.json 응답이 새 창에서 열리지 않습니다.

이 내 app.js 코드

Titanium.UI.setBackgroundColor('#fff'); 
var tabGroup = Titanium.UI.createTabGroup(); 

var login = Titanium.UI.createWindow({ 
    title:'User Authentication Demo', 
    tabBarHidden:true, 
    url:'main_windows/login.js' 
}); 

var loginTab = Titanium.UI.createTab({ 
    title:"Login", 
    window:login 
}); 

tabGroup.addTab(loginTab); 
tabGroup.open(); 

이며,이는 몸 캔이 나에게 도움이된다면 나는, 티타늄에 새로운 오전 아주 이해할 수있을 것이다 내 login.js 코드

var win = Titanium.UI.currentWindow; 

var UserLogin = Titanium.UI.createTextField({ 
    color:'#336699', 
    top:10, 
    left:10, 
    width:300, 
    height:40, 
    hintText:'UserLogin', 
    keyboardType:Titanium.UI.KEYBOARD_DEFAULT, 
    returnKeyType:Titanium.UI.RETURNKEY_DEFAULT, 
    borderStyle:Titanium.UI.INPUT_BORDERSTYLE_ROUNDED 
}); 
win.add(UserLogin); 

var UserPassword = Titanium.UI.createTextField({ 
    color:'#336699', 
    top:60, 
    left:10, 
    width:300, 
    height:40, 
    hintText:'UserPassword', 
    passwordMask:true, 
    keyboardType:Titanium.UI.KEYBOARD_DEFAULT, 
    returnKeyType:Titanium.UI.RETURNKEY_DEFAULT, 
    borderStyle:Titanium.UI.INPUT_BORDERSTYLE_ROUNDED 
}); 
win.add(UserPassword); 

var loginBtn = Titanium.UI.createButton({ 
    title:'Login', 
    top:110, 
    width:90, 
    height:35, 
    borderRadius:1, 
    font:{fontFamily:'Arial',fontWeight:'bold',fontSize:14} 
}); 
win.add(loginBtn); 

/* 
* Login Event Handling 
*/ 
var loginReq = Titanium.Network.createHTTPClient(); 
var data, User, UserName, UserEmail, UserFirstName, UserLastName, UserAvatar, BioGraphyNative,BioGraphyEnglish,UserPhone,CreatedOn; 
loginReq.onload = function() { 
    var json = this.responseText; 
    var response = JSON.parse(json); 
    var message = response.message; 
    var code = response.code; 

    if (response.data == null) { 
     alert("Message " + message + "code " + code); 
    } else { 
     var win1 = Titanium.UI.createWindow(); 
     win1.open(); 

     User    = response.data.User; 
     UserName   = User.UserLogin; 
     UserEmail   = User.UserEmail; 
     UserFirstName  = User.UserFirstName; 
     UserLastName  = User.UserLastName; 
     UserAvatar   = User.UserAvatar; 
     BioGraphyNative = User.BioGraphyNative; 
     BioGraphyEnglish = User.BioGraphyEnglish; 
     UserPhone   = User.UserPhone; 
     CreatedOn   = User.CreatedOn; 
     alert("UserName " + UserName + "UserEmail " + UserEmail); 
    } 
}; 

loginReq.onerror = function() { 
    alert("Network error"); 
}; 

/* 
* Login Button Click Event 
*/ 

loginBtn.addEventListener('click',function(e) { 

    if (UserLogin.value !== '' && UserPassword.value !== '') { 
     var win1 = Titanium.UI.createWindow(); 
     loginReq.open("POST", "url"); 
     var params = { 
      UserLogin: UserLogin.value, 
      UserPassword: UserPassword.value 
     }; 
     loginReq.send(params); 

    } else { 
     alert("Username/Password are required"); 
    } 
}); 

입니다 , 백만 톤을 미리 감사드립니다.

답변

1

창 개체가 만들어졌지만 비어 있고 배경이 투명하기 때문에 화면에 표시되지 않습니다.

당신은 당신의 onload이로 변경할 수 있습니다

loginReq.onload = function() { 
    var json = this.responseText; 
    var response = JSON.parse(json); 
    var message = response.message; 
    var code = response.code; 

    if (response.data == null) { 
     alert("Message " + message + "code " + code); 
    } else { 
     var win1 = Titanium.UI.createWindow({ 
      backgroundColor: 'white', 
      layout: 'vertical', 
     }); 

     var User = response.data.User; 
     for (var i in User) { 
      win1.add(Ti.UI.createLabel({ text: User[i] }); 
     } 
     win1.open(); 
    } 
}; 

은 또한 var 문없이 변수를 선언 같은 자바 스크립트 문제에 대해 알아 본다. 항상 모든 선언을 함수의 시작 부분에두고 사용하십시오. 모니터링을 계속하려면 JSHint 또는 JSLint를 설치하고 모든 저장시 코드를 확인하십시오.

+0

고마워, 지금은 내가 실수 한 부분을 이해하고있다. –

관련 문제