1

我的用户具有以下配置:

identifier: 'uuid',
proxy: {
    type: 'localstorage',
    id: 'tm-user'
}

但是在我的本地存储中显示了以下内容:

在此处输入图像描述

tm-user为什么每次保存用户配置文件时都会将 id 添加到密钥中?

如果有帮助,我只会每次都覆盖用户?

                    // 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'
        }
    }
});
4

1 回答 1

2

更改以下内容(如果您使用 UUID 类型应该是字符串,而不是 int。

{ name: 'id', type: 'string' }

并更改标识符定义,例如:

identifier: {
  type: 'uuid',
  isUnique: true
}

更新

由于您从服务器接收 Id 并且它们不是 UUID,您可以尝试以下操作。将标识符配置更改为:

identifier: {
  type: 'sequential',
  isUnique: true
}

当然在这种情况下id应该是类型。int如果这不起作用,但是我建议仍然使用第一种方法(使用 uuid),但是将您从服务器接收到的 id 存储在某些不同的字段中(item_number例如),并让 ST 处理唯一的 UUID 字段。

于 2013-06-14T13:28:40.927 回答