2013-06-13 2 views
1

Мой Пользователь имеет следующие конфигурации:Сенча Touch 2: LocalStorage создает несколько идентификаторов

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

Но в моем LocalStorage следующее показано:

enter image description here

Почему добавляется идентификатор к tm-user ключ каждый раз, когда я сохраняю профиль пользователя?

Я только перезаписываю пользователя каждый раз, если это помогает?

    // create user 
        var user = Tm.model.User.create({ 
         id: response[0].id, 
         ... 
        }); 
        user.save(); 

EDIT: полная модель просил:.

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

Можете ли вы опубликовать полный код для своей модели? – sha

+0

@sha полная модель добавлена ​​ – Tjorriemorrie

ответ

2

Измените следующее (если вы используете тип UUID должен быть строкой, а не INT

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

И изменить определение идентификатора, как :

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

Обновление

Поскольку вы получаете идентификаторы с сервера, и они не являются UUID, вы можете попробовать следующее. Изменение конфигурации идентификатора для этого:

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

и, конечно, тип id должен быть в этом случае int. Если это не работает, я бы рекомендовал использовать первый подход (используя uuid), но хранить идентификатор, который вы получаете с сервера, в другом поле (например, item_number) и позволить ST обрабатывать уникальное поле UUID.

+0

Это не решило ее. Я предполагаю, что я должен явно удалить его заранее? – Tjorriemorrie

+0

Не решил как? Вы видите GUID как идентификаторы записи сейчас? – sha

+0

Я не уверен, что такое GUID; это идентификатор моих данных и внутренний идентификатор модели. Каждый раз, когда я его сохраняю, он просто добавляет его вместо обновления/перезаписи, например. '33,33,33,33,33' – Tjorriemorrie