Ext.data.TreeStore - неправильная модель
Здравствуйте.
Опять проблемы с деревьями, увы и ах. Вот есть фидл, полюбопытствуйте: https://fiddle.sencha.com/#fiddle/1gts Вроде все по мануалам сделал, но проверьте тип моделей в дереве! Достаточно кликнуть строку и глянуть в консоль. Типа рута - MyApp.RootModel, тут правильно. А вот дальше список стран опять таки имеет тип MyApp.RootModel. Почему не Country? Ну и города соответственно станами получились судя по модели. Имеем лишний уромень корневых моделей ( Что я не так делаю??? |
В твоем примере
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' и все работает.. по крайней мере у меня :) |
Конечно работает. Я так и написал ) Но вопрос то в другом. Есть некий штатный механизм определения моделей, и он работает неправильно. Если там баги то ок, костыль впаяю. А если я просто не умею готовить то другой вопрос - надо выучить )
|
Честно говоря хватало такого подхода... Глубже не копал.
|
Нет тут особой глубины, вопрос в типах данных. У меня все модели одного уровня имеют одинаковый тип. Так что просто нет смысла в каждом объекте передавать еще и имя модели, это абсолютно излишне. Вот если бы у меня там был микс то другое дело.
|
можно просто в данных еще один уровень добавить
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 } ] } ] }] } |
Pavel M., Спасибо за подсказку. Так уже лучше.
|
Pavel M.,
Действительно, выглядит все гораздо проще. Самому интересно. Спасибо за ответ. |
Часовой пояс GMT +3, время: 18:26. |