从函数中提供文本以在钛中查看

时间:2014-09-01 10:18:57

标签: javascript android titanium

我对钛有一个小​​问题。我想要做的是将文本从我的函数传递到我的视图上的标签。有人可以向我解释我是如何做到这一点的。该函数在另一个文件中,然后是标签。

我试图这样做: 来自函数的文本 - >标签

这是我的代码:

//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();  

};

提前致谢

1 个答案:

答案 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);