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 ではなく string にする必要があります。

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

そして、識別子の定義を次のように変更します。

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

アップデート

サーバーから ID を受信して​​おり、それらは UUID ではないため、次のことを試してください。識別子の構成を次のように変更します。

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

もちろん、この場合は type of であるid必要があります。intそれでもうまくいかない場合は、最初のアプローチ(uuidを使用)を引き続き使用することをお勧めしますが、サーバーから受信したIDを別のフィールド(item_numberたとえば)に保存し、STに一意のUUIDフィールドを処理させます。

于 2013-06-14T13:28:40.927 に答える