Titanium 我们如何获得和发布钛合金api?

Titanium 我们如何获得和发布钛合金api?,titanium,Titanium,我们如何获得并发布钛合金api? 我有userDetails的api,我只想知道如何通过编码从api获取数据。 function getUserDetails(){ } 提前感谢。这是您问题的解决方案:- var request = Titanium.Network.createHTTPClient(); var done=false; request.onload = function() { try { if (this.readyState ==

我们如何获得并发布钛合金api?

我有userDetails的api,我只想知道如何通过编码从api获取数据。

function getUserDetails(){

}

提前感谢。

这是您问题的解决方案:-

    var request = Titanium.Network.createHTTPClient();
    var done=false;
    request.onload = function() {
    try {
    if (this.readyState == 4 && !done) {
       done=true;
    if(this.status===200){
        var content = JSON.parse(this.responseText);
      }else{
        alert('error code' + this.status);
      }
     }
     } catch (err) {
    Titanium.API.error(err);
    Titanium.UI.createAlertDialog({
        message : err,
        title : "Remote Server Error"
    });
}

};

request.onerror = function(e) {

Ti.API.info(e.error);

};

request.open("POST", "http://test.com");

request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

request.send({ test: 'test'});
如果你没有得到答案,请告诉我


谢谢

正如你提到的,你使用的是钛合金

因此,另一种方法是扩展Alloy的模型和集合(基于backbone.js概念)

在上已经有一些实现,在上也有适当的描述/用法

我还提供了所使用的描述和方法,以防链接中断:

创建模型:Alloy模型是Backbone.js模型的扩展,因此当您定义有关数据的特定信息时,可以通过实现所有主干模型通用的某些方法来实现,从而覆盖父方法。在这里,我们将重写主干的url()方法,以允许自定义url端点

路径:
/app/models/node.js

exports.definition = {
  config: {
    adapter: {
      type: "rest",
      collection_name: "node"
    }
  },
  extendCollection: function(Collection) {
    _.extend(Collection.prototype, {
      url: function() {
        return "http://www.example.com/ws/node";
      },
    });
    return Collection;
  }
};
$.index.open();
var node = Alloy.Collections.node;
node.fetch();
配置REST同步适配器:同步适配器的主要用途是用获取数据的内容覆盖主干网的默认同步方法。在我们的示例中,在调用函数以使用Ti.Network.createHTTPClient()调用获取数据之前,我们将运行一些完整性检查。这将创建一个对象,我们可以将头和处理程序附加到该对象,并最终打开并向服务器发送一个xml http请求,这样我们就可以获取数据并将其应用到我们的集合中

路径:
/app/assets/alloy/sync/rest.js
(您可能需要先创建alloy/sync文件夹)

为模型视图绑定设置视图:Tianium具有一种称为“模型视图绑定”的功能,允许您在视图的一部分中为集合中的每个模型创建可重复的对象。在我们的示例中,我们将使用一个TableView元素,其
dataCollection
属性设置为
node
,这是我们模型的名称,我们将在其中创建一个TableViewRow元素。基于行的元素将神奇地重复集合中的每个项目

路径:
/app/views/index.xml

<Alloy>
  <Collection src="node">
    <Window class="container">
      <TableView id="nodeTable" dataCollection="node">
        <TableViewRow title="{title}" color="black" />
      </TableView>
    </Window>
</Alloy>
进一步阅读:


希望对您有所帮助。

那么这意味着每次我从远程检索集合时,它都会从远程检索?如果是这样的话,对它的兴趣在哪里?你对它的兴趣是什么意思?我的意思是,如果每次fetch方法从远程发出请求,那么使用它的优势是什么?你可以使用模型进行双向数据绑定,也可以根据模型方法(get/set)调用各种CURD API,因此是一个整洁的包装器。
$.index.open();
var node = Alloy.Collections.node;
node.fetch();