#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
нет необходимости.