Мне нужна помощь с моей xtemplate и хранить с прокси. Независимо от того, что я пытаюсь, я застрял в этой проблеме. В xtemplate отображаются только данные из магазина без использования прокси.Extjs 5 XTemplate с данными магазина JSON
работы магазина:
Ext.create('Ext.data.Store', {
storeId : 'viewStore',
model : 'dataview_model',
data : [
{statistic: '213213', description: 'Hallo'},
{statistic: '534345', description: 'Alloh'},
]
});
Рабочая XTemplate и конфигурации данных
xtype: 'component',
cls: 'kpi-tiles',
id: 'statisticsBoxes',
height: 100,
tpl: [
'<div class="kpi-meta">',
'<tpl for=".">',
'<span>',
'<div class="statsDiv">{statistic}</div> {description}',
'</span>',
'</tpl>',
'</div>'
],
data: [{
description: Ext.getStore('statisticsStore').getAt(0).data.statistic,
statistic: Ext.getStore('viewStore').getAt(0).data.statistic
},{
description: Ext.getStore('viewStore').getAt(1).data.description,
statistic: Ext.getStore('viewStore').getAt(1).data.statistic
}],
Но когда я меняю данные для шаблона, так она будет загружать данные из хранилища статистики, возникает следующая ошибка в console.log: Uncaught TypeError: Невозможно прочитать свойство getAt неопределенного.
конфигурации данных:
data: [{
description: 'the description',
statistic: Ext.getStore('statisticsStore').getAt(0).data.statistic
}],
Статистика магазин:
Ext.define('ExecDashboard.store.Statistics', {
extend: 'Ext.data.Store',
alias: 'store.statistics',
storeId: 'statisticsStore',
model: 'ExecDashboard.model.Statistics',
proxy: {
type: 'ajax',
url: '/statistics',
reader: 'json'
}
});
производит следующие JSON:
[{ "Статистика": "1"}, { "статистика": "2" }]
магазин загружается в ViewModel:
stores: {
Statistics: {
type: 'statistics',
autoLoad: true
}
}
Я думаю, проблема в том, что магазин не загружен в этот момент. Но я не знаю, как решить эту проблему. Я знаю, что «Ext.getStore (« статистикаStore »). GetAt (0) .data.statistic» работает в console.log при загрузке магазина.
так, как это магазин загружен? – dbrin
магазин загружен в viewModel – Jurgen
Я думаю, что ваша догадка о сроках правильная, вам нужно настроить слушателя на событие загрузки магазина и отключить свою другую логику, когда загрузка будет завершена. – dbrin