合金收集和POST数据模型

时间:2014-10-17 20:03:16

标签: javascript titanium appcelerator titanium-alloy

我对Titanium并不陌生,但我对Alloy很陌生,我正在努力掌握集合和模型的概念。

我的第一个视图/控制器是登录屏幕,所以我自然需要向API提交用户名和密码。我找到了这个并且能够成功检索示例JSON提要:https://github.com/viezel/napp.alloy.adapter.restapi

在我的模型文件夹中,我有一个名为Login的模型(或者是它,我有一个集合?)

exports.definition = {  
    config: {
        "URL": "http://example.com/services/user/login",
        "debug": 0, 
        "adapter": {
            "type": "restapi",
            "collection_name": "Login",
            "idAttribute": "id"
        },
        "headers": {},
        "parentNode": "feed" //your root node
    },      
    extendModel: function(Model) {      
        _.extend(Model.prototype, {});
        return Model;
    },  
    extendCollection: function(Collection) {        
        _.extend(Collection.prototype, {});
        return Collection;
    }       
};

我的控制器通过以下方式调用此模型:

var login = Alloy.createCollection('Login');
login.fetch({ 
  success : function()
  {
    _.each(login.models, function(element, index, list)
    {
      //-- handle the response
    });
  },
  error : function()
  {
    Ti.API.error('xhr error!');
  }
});

我的问题,在上述链接上并不清楚,是如何将数据发布到该模型以发送到API。就像我说的,我需要发送用户名和密码。

1 个答案:

答案 0 :(得分:1)

我有一些非常详尽的例子。

但基本前提是您需要扩展用户模型以支持登录功能,而不是在集合中进行。

请参阅此处的完整示例https://github.com/aaronksaunders/AppC-Alloy-Book/blob/master/app/models/user.js

虽然此模型适用于ACS,但基本模式保持不变

  extendModel : function(Model) {
       _.extend(Model.prototype, {
          login : function(_login, _password, _callback) {}
       }
  }