我有一个简单的应用程序,它将加载我想在单独的选项卡面板中显示的托管网页。最干净的方法是什么?可以在用户单击每个选项卡时加载选项卡,也可以在应用程序启动时立即加载所有选项卡。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>