Здравствуйте.
Пытаюсь реализовать пример по работе с моделями и схемой. Нашел вот этот ресурс:
http://www.sencha.com/products/extjs...s-data-package и начал пробовать. Базовая модель:
Ext.define("Communication.model.Base", {
extend: "Ext.data.Model"
,schema: {
namespace: 'Communication.model', // remove this pattern from entity names
proxy: { // Ext.util.ObjectTemplate
type: "ajax",
url: "/json?cmd=communication.api&entity={entityName}",
reader: {
type: "json",
rootProperty: "{entityName:lowercase}"
}
}
}
});
От нее наследую:
Ext.define("Communication.model.layout.Tabs", {
extend: "Communication.model.Base",
fields: [
"name"
]
});
EntityName получается "layout.Tabs". С сервера возвращаю json, созданный из следующей структуры:
my $data = {
"layout.tabs" => [
{name=>"Summary"},
{name=>"Access"},
{name=>"s1"},
{name=>"s2"},
]
};
Но вот когда я эту модель ("Communication.model.layout.Tabs") подключаю к стору и загружаю его, он не видит данные.
var store = new Ext.data.Store ({
model: "Communication.model.layout.Tabs"
});
store.load({
callback:function(records, operation, success){
console.log(success);
console.log(records);
}
});
В логе я вижу что success=true, но records - пустой массив. Если я формирую json как простой массив, не используя rootProperty, то данные приходят нормально. Вопрос: зачем тогда вообще этот параметр? Я чего то не понимаю... Как им пользоваться?