我对钛有一个小问题。我想要做的是将文本从我的函数传递到我的视图上的标签。有人可以向我解释我是如何做到这一点的。该函数在另一个文件中,然后是标签。
我试图这样做: 来自函数的文本 - >标签
这是我的代码:
//making the milking view
var milkingView = Ti.UI.createView({
backgroundColor: 'white'
});
var title = new Ti.UI.createLabel({
top: 20,
left: per25,
height: 30,
text: 'MilkingResults:',
color: 'black',
font: {fontSize: 18}
});
var text = new Ti.UI.createLabel({
top: 20,
left: per25,
height: 30,
text: 'here i want the text from the function',
color: 'black',
font: {fontSize: 18}
});
以上是视图的代码,下面是函数的代码
function http_get(subpage) {
var url = "url" + subpage;
var http_client = Ti.Network.createHTTPClient({
// function called when the response data is available
onload : function(e) {
Ti.API.info("Received text: " + this.responseText);
alert('success');
},
// function called when an error occurs, including a timeout
onerror : function(e) {
Ti.API.debug(e.error);
alert('error');
},
timeout : 5000 // in milliseconds
});
// Prepare the connection.
http_client.open("GET", url);
// Send the request.
http_client.send();
};
提前致谢
答案 0 :(得分:1)
挑战在于http_client.onload
函数是异步的。您可以做的一件事就是通过http_get
函数传递回调。
例如,在第一个文件中,您可以使用以下功能:
function updateLabel(textFromOnLoad){
text.text = textFromOnLoad;
};
并以这种方式修改http_get
:
function http_get(subpage, callback) {
var url = "url" + subpage;
var http_client = Ti.Network.createHTTPClient({
// function called when the response data is available
onload : function(e) {
callback(this.responseText);
},
// function called when an error occurs, including a timeout
onerror : function(e) {
Ti.API.debug(e.error);
alert('error');
},
timeout : 5000 // in milliseconds
});
// Prepare the connection.
http_client.open("GET", url);
// Send the request.
http_client.send();
};
然后你可以打电话给你的第一个文件:
http_get(subpage,updateLabel);