Я работаю над переключением с версии 4.1.1 на 4.2.1, и, наконец, мне нужно исправить, надеюсь, последнюю ошибку. У нас есть GridView с точки зрения того перекрываться простым Ext.XTemplate, следующим (?):ExtJS 4.2.1 Просмотр сетки с помощью пользовательского XTemplate ничего не показывает
Ext.define('view.monitoring.Event',
{
extend: 'Ext.view.View',
alias: 'widget.default_monitoring_event',
itemSelector: '.monitoring-thumb-fumb',
tplWriteMode: 'overwrite',
autoWidth: true,
initComponent: function()
{
var tplPart1 = new Ext.XTemplate('<SOME HTML 1>');
var tplPart2 = new Ext.XTemplate('<SOME HTML 2>');
var tplPart3 = new Ext.XTemplate('<SOME HTML 3>');
var tplPart4 = new Ext.XTemplate('<SOME HTML 4>');
this.tpl = new Ext.Template('<BUNCH OF HTML AND TPL and TPL INSIDE TPL',
callFunc1: function(data) { /* do something with tplPart1 */ },
callFunc2: function(data) { /* do something with tplPart2 */ },
callFunc3: function(data) { /* do something with tplPart3 */ },
callFunc4: function(data) { /* do something with tplPart4 */ },
);
this.callParent(arguments;
}
}
Этот вид устанавливается на сетке таким образом:
Ext.define('view.monitoring.WeeklyOverview',
{
extend: 'Ext.grid.Panel',
alias: 'widget.default_monitoring_weeklyoverview',
layout: 'border',
title: Lang.translate('event_monitoring_title'),
overflowX: 'hidden',
overflowY: 'auto',
initComponent: function()
{
//...
this.view = Ext.widget('default_monitoring_event', {
store: Ext.create('store.monitoring.Rows')
});
//...
}
}
Затем в контроллере onRender
магазины заселяются (хранилище сетки AJAX, загружает данные и передает их в хранилище памяти представления). В ExtJS 4.1.1 это работает правильно, данные загружаются и шаблон анализируется, а HTML отображается с данными.
Но после перехода на 4.2.1 HTML больше не заполняется данными, и ничего не отображается, но пустая таблица HTML (которая выглядит так, как будто ничего не будет отображаться). Поскольку есть хотя бы часть HTML, но нет данных, я думаю, проблема может заключаться в том, что данные применяются к шаблону.
Кто-нибудь знает, что может быть/пошло не так?
UPDATE: После отладки и пользовательских шаблонов зрения упрощения я узнал, что даже пользовательский вид установил свой собственный магазин с это собственный корень для данных, возвращенного, он игнорирует, что установка и просто загружает данные для хранилище компонента Ext.grid.Panel
. Ответ AJAX выглядит следующим образом:
{
user: {},
data: [
0: { ... },
1: { ... },
...
],
rows: [
0: { ... },
1: { ... },
...
]
}
Здесь data
следует использовать для Ext.grid.Panel
компонента и rows
должны быть затем заселены пользовательским вид (настраивается с Ext.XTemplate
). Кажется, что для просмотра детьми всегда возвращается корневой элемент родительского магазина. В любом случае, как обойти это поведение и заставить пользовательский вид использовать собственный магазин?