2
在我的应用程序中,第一页显示底部的tabPanel。但标签数量,标签和图标是来自json请求的动态内容。我想知道如何去做。这是我的尝试。Sencha使用动态JSON数据触摸tabPanel
TMDemo = new Ext.Application({
name: 'TMDemo',
launch: function(){
this.views.mainTabBar = new this.views.MainTabBar();
}
});
TMDemo.views.MainTabBar = Ext.extend(Ext.TabPanel,{
fullscreen: true,
tabBar:{
dock:'bottom',
layout:{
pack:'center'
}
},
addItems: function(){
this.add(addItemsBasedOnJsonData());
this.doLayout(); // important
},
listeners: {
beforerender:function(){
Ext.util.JSONP.request({
url: 'app/data/tabbar.json',
callbackKey: 'callback',
callback: function(result) {
console.log("Inside callback");
TMDemo.tabBarData = result;
}
});
}
render: function(){
console.log("Inside render");
this.addItems();
}
}
});
此处tabbar数据来自tabbar.json(虚拟数据实际将是某个URL)。我通过addItemsBasedOnJsonData()函数将项目添加到此Tabpanel中,该函数将创建选项卡项并返回数组。 但问题是渲染事件总是先触发然后JSON请求回调,所以没有jsondata可用于动态创建选项卡。 请指导我正确的方向。这种方法是否正确。我可以有任何示例来寻找。
塔伦
我用的doLayout呼叫尝试这样做。标签栏数据可用,但标签不能正确呈现,我的意思是CSS是搞砸了。 –
你是怎么做doLayout的?我可以看到代码吗? – Luis
也有你试过:doComponentLayout() – Luis