Загрузить Sencha DataView из данных массива - PullRequest
0 голосов
/ 19 марта 2012

У меня есть небольшой пример приложения Sencha Touch 2 на http://www.senchafiddle.com/#FWMDh.. Он заполняет DataView из магазина, и каждая из моделей отображает некоторый текст в виде. Прекрасный. То, что я бы на самом деле хотел бы сделать, - это заставить DataView работать не из хранилища, а из одного из свойств букв в модели, то есть массива. Таким образом, DataView будет отображать список букв только из одного слова.

Есть идеи, как этого добиться? Та.

1 Ответ

1 голос
/ 20 марта 2012

DataView должен иметь хранилище, поэтому нет другого способа, кроме как преобразовать эти данные в вашей модели во что-то, что хранилище может прочитать (массив объектов), а затем связать это хранилище с DataView.

Примерно так:

var letters = record.get('letters'), // get the letters array from the model
    lettersData = [], // we are going to create a new array of objects
    ln = letters.length,
    store, i;

for (i = 0; i < ln; i++) {
    // push each of the letters into the lettersData array, but as objects
    lettersData.push({
        letter: letters[i]
    });
}

store = Ext.create('Ext.data.Store', {
    fields: ['letter'], // set the only field as a letter. This will automatically create a model for this store
    data: lettersData // set the store data as the lettersData array
});
...