Можно ли установить пользовательский идентификатор для сенсорных записей сенча?

Когда я загружаю магазин в сенсорную сетку sencha, записи имеют автоматически сгенерированный идентификатор, например. "ext-records-5", "ext-records-6" и т. д. и т. д.,

Столбцы, которые я получаю с сервера, следующие: «eId», «имя», «номер».

В моем data.Model я установил idProperty: 'eId', предполагая, что он установит eId, поступающий с сервера, в качестве идентификатора записи, но все, что это, кажется, делает, это устанавливает internalId как 'eId'

Это не то, что я ищу, кто-нибудь сталкивался с такой ситуацией или может кто-нибудь найти способ добиться того, что я ищу.

Любая помощь будет оценена по достоинству.

Заранее спасибо.


person Nick Div    schedule 19.08.2014    source источник


Ответы (1)


По умолчанию считается idProperty:'id', сенча автоматически генерирует идентификаторы в зависимости от выбранной вами стратегии идентификатора, которая может быть простой, последовательной или >uuid. Но как только вы говорите idProperty: 'eId', это означает, что сенча не будет генерировать для вас никаких идентификаторов. Либо мы можем использовать eId, либо мы можем напрямую принять значение, используя имя поля в качестве идентификатора, как показано ниже. Итак, в случае, показанном ниже, я использовал id вместо eId.

Ext.define('StoreDemo.model.LSModel', {
    extend: 'Ext.data.Model',
    
    config: {
        fields: [
            { name: 'id', type: 'auto' }, // use id instead of eId
            { name: 'name', type: 'int' },
            { name: 'number', type: 'int' }

        ],
        idProperty:'id' , //By default idProperty is 'id'
        // idProperty:'uname' ,
        proxy:{
        	type:'localstorage' // or 'sessionstorage'
        },

        /*identifier:{
            type:'simple'  //The id is given by Ext e.g. ext-record-1,ext-record-2
        	// type:'uuid'  //This generates a unique id everytime we save a model
        }*/	
    }
});

Когда вы получаете данные через сервер, например, используйте отдельную модель с именем поля в качестве eId и назначьте модель другой модели LSModel, упомянутой выше.

person Apoorv Nag    schedule 27.02.2015