Model 无法使用钛Appcelerator中的合金更新模型
我正在尝试更新钛合金系列中的一个模型 此代码不起作用:Model 无法使用钛Appcelerator中的合金更新模型,model,titanium,updates,titanium-alloy,updatemodel,Model,Titanium,Updates,Titanium Alloy,Updatemodel,我正在尝试更新钛合金系列中的一个模型 此代码不起作用: var contactos = Alloy.Collections.instance('Contact'); var contacto = contactos.get({id: 3}); // Output: {id:3, name:'Juan 3', marcado: 1} Ti.API.debug('get: ' + JSON.stringify(contacto)); contacto.set({marcado: 0}); //
var contactos = Alloy.Collections.instance('Contact');
var contacto = contactos.get({id: 3});
// Output: {id:3, name:'Juan 3', marcado: 1}
Ti.API.debug('get: ' + JSON.stringify(contacto));
contacto.set({marcado: 0});
// Output: {id:3, name:'Juan 3', marcado: 0}
Ti.API.debug('set: ' + JSON.stringify(contacto));
contacto.save();
contactos.fetch();
// Output: [{id:3, name:'Juan 3', marcado: 1},{...},{...}]
Ti.API.debug('despues de save: ' + JSON.stringify( JSON.stringify( contactos ) ));
在这起作用时:
var contactos = Alloy.Collections.instance('Contact');
var contacto1 = Alloy.createModel('Contact');
// Output: {id:null, name:'', marcado: 0}
Ti.API.debug('createModel: ' + JSON.stringify(contacto1));
var contacto2 = contactos.get({id: 3});
// Output: {id:3, name:'Juan 3', marcado: 1}
Ti.API.debug('get: ' + JSON.stringify(contacto2));
contacto1.set( contacto2 );
contacto1.set({marcado: 0});
// Output: {id:3, name:'Juan 3', marcado: 0}
Ti.API.debug('set: ' + JSON.stringify(contacto1));
// elimino el contacto 2
contacto2.destroy();
contacto1.save();
contactos.fetch();
// Output (last object): [{...},{...},{...},{...},{id:3, name:'Juan 3', marcado: 0}]
Ti.API.debug('despues de save: ' + JSON.stringify( JSON.stringify( contactos ) ));
但是:
-第一个选项可以很好地保存新模型(集合中不存在)
更新一个模型应该是一项非常简单的任务,但我不能做到这一点
你知道可能的问题吗
多谢各位
J.Pablo.我也有同样的问题,我就是这样解决的: 定义模型时,必须显式声明主键,如下所示:
exports.definition = {
config: {
columns: {
"id": "INTEGER PRIMARY KEY",
"name": "TEXT",
"marcado": "INTEGER"
},
adapter: {
type: "sql",
idAttribute: "id"
}
},
extendModel: function(Model) {
_.extend(Model.prototype, {
idAttribute: "id",
...
return Model;
}
};
仅声明idAttribute是不够的。嘿,我面临着同样的问题,你能解决这个问题吗?