Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Ext.data.TreeStore - неправильная модель (https://javascript.ru/forum/extjs/64964-ext-data-treestore-nepravilnaya-model.html)

Infarch 16.09.2016 16:12

Ext.data.TreeStore - неправильная модель
 
Здравствуйте.

Опять проблемы с деревьями, увы и ах. Вот есть фидл, полюбопытствуйте: https://fiddle.sencha.com/#fiddle/1gts

Вроде все по мануалам сделал, но проверьте тип моделей в дереве! Достаточно кликнуть строку и глянуть в консоль. Типа рута - MyApp.RootModel, тут правильно. А вот дальше список стран опять таки имеет тип MyApp.RootModel. Почему не Country? Ну и города соответственно станами получились судя по модели. Имеем лишний уромень корневых моделей (

Что я не так делаю???

kolka 22.09.2016 09:06

В твоем примере
proxy: {
            type: 'ajax',
            url: 'responce.json',
            reader: {
                type: 'json',
            	rootProperty: 'data'
                //,typeProperty: 'mt'
                // the property above helps and, furthermore, could be a
                // function returning model names. but I'd like to avoid
                // such hacks and use standard API.
            }
        }


убери комментарий с
,typeProperty: 'mt'

и все работает.. по крайней мере у меня :)

Infarch 22.09.2016 10:00

Конечно работает. Я так и написал ) Но вопрос то в другом. Есть некий штатный механизм определения моделей, и он работает неправильно. Если там баги то ок, костыль впаяю. А если я просто не умею готовить то другой вопрос - надо выучить )

kolka 22.09.2016 17:21

Честно говоря хватало такого подхода... Глубже не копал.

Infarch 23.09.2016 15:01

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

Pavel M. 23.09.2016 18:05

можно просто в данных еще один уровень добавить
https://fiddle.sencha.com/#fiddle/1ha8
{
    success: true,
    data: [{
    	text: 'RRRRRoooot',
        data: [
            { text: 'Ukraine',
                data: [
                    { text: 'Lviv', leaf: true },
                    { text: 'Kyiv', leaf: true }
                ]
            },
            { text: 'USA',
                data: [
                    { text: 'NY', leaf: true }
                ]
            },
            { text: 'Bulgaria',
                data:[
                    { text: 'Nesebr', leaf: true }
                ]
            }
        ]
    }]
}

Infarch 26.09.2016 10:07

Pavel M., Спасибо за подсказку. Так уже лучше.

kolka 27.09.2016 15:28

Pavel M.,
Действительно, выглядит все гораздо проще.
Самому интересно.
Спасибо за ответ.


Часовой пояс GMT +3, время: 12:54.