ExtJS — Заставьте магазин генерировать идентификаторы только с номерами

#javascript #extjs

Вопрос:

Когда новая запись добавляется в хранилище в ExtJS 6.2, она автоматически создает новый идентификатор с именем модели и числовым идентификатором (MODEL-ID), если вы не указали какое-либо поле в качестве идентификатора.

Можно ли заставить магазин генерировать идентификаторы, содержащие только номер?

Скрипка: https://fiddle.sencha.com/#fiddle/3gk0amp;view/editor
Вместо User-1 , User-2 , User-3 , есть только 1 , 2 , 3 .

Ответ №1:

Вам необходимо добавить пользовательские identifier настройки в модель, см. Ниже. Это установит id свойство, которое добавляется по умолчанию в Model , даже если вы не перечисляете его среди полей:

 Ext.define('User', {
    extend: 'Ext.data.Model',
    identifier: {
        type: 'sequential',
        seed: 1,
        increment: 1
    },
    fields: [{
        name: 'age',
        type: 'int'
    }, {
        name: 'name',
        type: 'string'
    }, {
        name: 'email',
        type: 'string'
    }, {
        name: 'phone',
        type: 'string'
    }],
});
 

Но имейте в виду, что это фантомные идентификаторы, то есть они существуют только на клиенте. В большинстве случаев серверы генерируют поля реального идентификатора, и клиенты получают их с серверов.

Комментарии:

1. Сработало для меня, просто определив identifier , как вы показали, не нужно было создавать id поле, как называется по умолчанию id .

2. Хорошо, отлично! Я отредактирую ответ, в котором id нет необходимости.