1
我正在嘗試取文本字段的值,並使用Ti.App.fireEvent(http://docs.appcelerator.com/titanium/latest/#!/api/Titanium.App-method-fireEvent)將它傳遞到一個新窗口(JavaScript文件),以便我最終可以將其插入數據庫當一個按鈕被按下...到目前爲止,我有一個變量,它存儲了名爲usernameValue的文本字段的值。這將被髮送到http參數值。必須有一些簡單的東西,我錯過了。讓我知道是否需要更多的信息來使這個問題更清楚。鈦通過Textfield值到新窗口
TexField其中數據最初來源於:
var username = Titanium.UI.createTextField({
//color : '#ffffff',
top : 10,
width : 300,
height : 45,
hintText : 'Username',
keyboardType : Titanium.UI.KEYBOARD_DEFAULT,
returnKeyType : Titanium.UI.RETURNKEY_DEFAULT,
borderStyle : Titanium.UI.INPUT_BORDERSTYLE_ROUNDED,
clearButtonMode: Titanium.UI.INPUT_BUTTONMODE_ONFOCUS
});
需要來自login.js傳遞:
//FireEvent parameter passing!
var usernameValue = username.value;
Ti.App.addEventListener('sendDataToScreen', function()
{
Ti.App.fireEvent('app:populateUsername', usernameValue);
});
IM.js檢索:
//FireEvent Paremeter Passing!
Ti.App.fireEvent('app:populateUsername', usernameValue);
新窗口(在這種情況下,幫助):
//if logged in, open new window!
var IM = Ti.UI.createWindow({
url : 'IM.js',
navBarHidden : false,
// fullscreen:false
});
IM.open();
按鈕參數傳遞用於其中:
//posting of IM onclick to database!!
postBtn.addEventListener('click', function(e) {
if (chatBox.value != '') {
createReq.open("POST", "http://***.php");
var params = {
post : chatBox.value,
user : _data.username
};
createReq.send(params);
//tap to repload and clear
var rd = [];
tableview.data = rd;
setData();
} else {
var blankAlert = Titanium.UI.createAlertDialog({
title : 'Posting Error',
message : 'Post cannot be empty',
buttonNames : ['OK']
});
blankAlert.show();
}
});
控制檯輸出 「作爲參數傳遞的名字」 時
不顯示並且在投入使用時,調試器/模擬器說「找不到變量」。有任何想法嗎?請參閱上面的按鈕使用。 – Klinetel
根據調試器的反饋,我不認爲數據實際傳遞到新窗口。 – Klinetel
我上面提供的示例代碼的工作原理,請提供一個簡單的測試用例,哪裏不工作,沒有人真的想重建您的完整項目以找到適合您的解決方案 –