Я занимаюсь разработкой простого приложения, в котором я получаю данные с использованием YQL и сохраняю их в базе данных localhost.Я успешно могу хранить данные в базе данных localhost и получить их тоже.Единственная проблема - я вижу, что мои данные отображаются только после второго обновления, и я не могу понять почему!
Под вторым обновлением я подразумеваю, что я удаляю записи из базы данных localhost и запускаю код.Поэтому в первый раз я получаю пустое представление без данных.После обновления я вижу, что мои данные заполняются на веб-странице.
Вот мой контроллер
Ext.regController('Index', {
index: function () {
var mainStoryStore = Ext.getStore('MainStoryStore');
if(!mainStoryStore.first())
{
Ext.YQL.makeYqlRequest('news');
this.retrieveContent(mainStoryStore);
}
else
{
this.retrieveContent();
}
},
retrieveContent: function () {
var mainStoryStore = Ext.getStore('MainStoryStore');
if(!this.mainView) {
this.mainView = this.render({
xtype: 'Main'
});
this.application.viewport.setActiveItem(this.mainView);
}
else
{
this.application.viewport.setActiveItem(this.mainView,{
type: 'slide',
direction: 'right'
});
}
Ext.getCmp('topcontent').update(Ext.getStore('MainStoryStore').data.items);
console.log(Ext.getStore('MainStoryStore').data.items); //When I do this I get data from the store both in my first and second refresh
Ext.getCmp('content').update(Ext.getStore('MainStoryStore').data.items);
},
});
Вот один из моих взглядов.Другой вид с id:'content'
имеет аналогичную структуру и шаблон.
MyApp.views.topTile = Ext.extend (Ext.Panel, {
dock:'top',
id:'topcontent',
height:214,
showAnimation:{
type:'fade',
duration:700,
},
// onItemDisclosure: true,
initComponent: function () {
itemTpl = new Ext.XTemplate(
//'<tpl if="item">',
'<tpl for=".">',
'<tpl if="internalId === 1">',
'<tpl for="data">',
'<div class="catImage">',
'<a href="#" onclick=\'javascript:goToURL(\"{link}\");\'><img src="{mimage}"></a>',
'<div class="{adClass} titleBack"></div>',
'<a href="#" onclick=\'javascript:goToURL(\"{link}\");\' class="{adClass} catTitle {custClass}">{title}</a>',
'</div>',
'<div class="catBox">',
'<span class="catDesc">{description}</span>',
'<span class="catDate">{pubDate}</span>',
'<span class="moBo"><a href="#" onclick=\'javascript:goToURL(\"{link}\");\'>More</a></span>',
'</div>',
'</tpl>',
'</tpl>',
'<div class="ender"></div><div class="ender"></div>',
'</tpl>'
),
Ext.apply(this,{
tpl: itemTpl,
}),
MyApp.views.topTile.superclass.initComponent.apply(this, arguments);
},
});