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, время: 17:52. |