我对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。就像我说的,我需要发送用户名和密码。
答案 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) {}
}
}