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是不够的。

嘿,我面临着同样的问题,你能解决这个问题吗?