我的用户具有以下配置:
identifier: 'uuid',
proxy: {
type: 'localstorage',
id: 'tm-user'
}
但是在我的本地存储中显示以下内容:
为什么每次保存用户个人资料时都会将ID添加到tm-user
密钥?
如果有帮助,我每次都会覆盖用户吗?
// create user
var user = Tm.model.User.create({
id: response[0].id,
...
});
user.save();
编辑:请求完整模型:
Ext.define('Tm.model.User', {
extend: 'Ext.data.Model',
config: {
hasMany: { model: 'Tm.model.Exam', name: 'exams', autoLoad: true },
fields: [
{ name: 'id', type: 'int' },
{ name: 'username', type: 'string' },
{ name: 'email', type: 'string' },
{ name: 'nameFirst', type: 'string' },
{ name: 'nameLast', type: 'string' },
{ name: 'syncedAt', type: 'date', defaultValue: null }
],
validations: [
{ field: 'id', type: 'presence' },
{ field: 'username', type: 'presence' },
{ field: 'syncedAt', type: 'presence' },
{ field: 'email', type: 'presence' },
{ field: 'email', type: 'email' },
{ field: 'username', type: 'length', min: 3 }
],
identifier: 'uuid',
proxy: {
type: 'localstorage',
id: 'tm-user'
}
}
});
答案 0 :(得分:2)
更改以下内容(如果您使用UUID类型应为字符串,而不是int。
{ name: 'id', type: 'string' }
更改标识符定义,如:
identifier: {
type: 'uuid',
isUnique: true
}
更新
由于您从服务器接收ID并且它们不是UUID,因此您可以尝试以下操作。将标识符配置更改为:
identifier: {
type: 'sequential',
isUnique: true
}
当然,在这种情况下,id
的类型应为int
。如果这不起作用,我建议仍然使用第一种方法(使用uuid),但是你在某个不同的字段(例如item_number
)从服务器接收的存储ID,并让ST处理唯一的UUID字段。 / p>