我有一个简单的应用程序,它将加载我想在单独的选项卡面板中显示的托管网页。最干净的方法是什么?可以在用户单击每个选项卡时加载选项卡,也可以在应用程序启动时立即加载所有选项卡。Sencha Touch 无法简单地将 html: 值设为 URL。我可以为每个标签添加一些页面加载事件吗?
[更新]
我在 initialize: 方法中添加了进行 Ajax 调用的建议,使用本地 html 文件进行测试。但是,所有选项卡都显示要完成的第一个 Ajax 结果。
此代码现在功能齐全。我忘了:this.callParent(arguments);
我把例子放在SenchaFiddle 前两个选项卡不会加载,因为 ajax 调用失败,但最后两个 ComponentQuery 的工作。
以下是屏幕外观的一个想法:


这是基本视图:
Ext.define('SenchaFiddle.view.MainView', {
扩展:'Ext.tab.Panel',
配置:{
tabBarPosition:'底部',
布局: {
类型:'卡',
动画片: {
持续时间:300,
easing: '缓入出',
类型:'幻灯片',
方向:“左”
}
},
全屏:是的,
项目: [
{
标题:“热门故事”,
iconCls: '信息',
xtype:'面板',
项目: [
{
标题:“热门故事”,
xtype: '工具栏',
停靠:'顶部'
},
{
id: '图片标签',
html: '正在加载头条新闻网址...'
}
]
},
{
标题:“娱乐”,
iconCls: '动作',
项目: [
{
标题:“娱乐”,
xtype: '工具栏',
停靠:'顶部'
},
{
id: '新闻标签',
html: '正在加载娱乐网址...'
}
]
},
{
id: 'tab3',
标题:“体育”,
iconCls: '用户'
},
{
id: 'tab4',
标题:“科学”,
iconCls: '星'
}
]
},
初始化:函数(){
console.log("视图初始化");
Ext.Ajax.request({
url: 'bar.html', // 你必须有权访问服务器
方法:'GET',
回调:函数(选项,成功,响应){
console.log(response.responseText);
Ext.ComponentQuery.query('#image-tab')[0].setHtml(response.responseText);
}
});
Ext.Ajax.request({
url: 'foo.html', // 你必须有权访问服务器
方法:'GET',
回调:函数(选项,成功,响应){
console.log(response.responseText);
Ext.ComponentQuery.query('#news-tab')[0].setHtml(response.responseText);
}
});
Ext.ComponentQuery.query('#tab3')[0].setHtml("boom");
Ext.ComponentQuery.query('#tab4')[0].setHtml("bang");
this.callParent(参数); // 不要忘记这一点!
}
});
foo.html
<p style="color: #00f;">
富
</p>
bar.html
<p style="color: #0f0;">
酒吧
</p>