我有一个简单的应用程序,将加载托管的网页,我想显示在单独的选项卡面板。最干净的方法是什么?选项卡可以在用户点击每个选项卡时加载,或者在应用程序启动时一次加载所有选项卡。Sencha Touch没有办法简单地使html: value成为一个URL。我可以为每个选项卡添加一些页面加载事件吗?
[更新]
我添加了使用本地html文件进行测试的初始化:方法中的Ajax调用的建议。但是,所有选项卡都显示要完成的第一个Ajax结果。
此代码现已完全正常运行。我忘了:this.call家长(争论);
我把这个例子放在SenchaFiddle上,前两个选项卡不会加载,因为ajax调用失败,但是最后两个ComponentQuery可以工作。
下面是屏幕应该如何看的想法:
以下是基本观点:
Ext.define('SenchaFiddle.view.MainView', { extend: 'Ext.tab.Panel', config: { tabBarPosition:'bottom', layout: { type: 'card', animation: { duration: 300, easing: 'ease-in-out', type: 'slide', direction: 'left' } }, fullscreen: true, items: [ { title: 'Top Stories', iconCls: 'info', xtype: 'panel', items: [ { title: 'Top Stories', xtype: 'toolbar', docked: 'top' }, { id: 'image-tab', html: 'Loading top stories url...' } ] }, { title: 'Entertainment', iconCls: 'action', items: [ { title: 'Entertainment', xtype: 'toolbar', docked: 'top' }, { id: 'news-tab', html: 'Loading entertainment url...' } ] }, { id: 'tab3', title: 'Sports', iconCls: 'user' }, { id: 'tab4', title: 'Science', iconCls: 'star' } ] }, initialize: function() { console.log("View initialized"); Ext.Ajax.request({ url: 'bar.html', // you must have access to the server method: 'GET', callback: function(options, success, response) { console.log(response.responseText); Ext.ComponentQuery.query('#image-tab')[0].setHtml(response.responseText); } }); Ext.Ajax.request({ url: 'foo.html', // you must have access to the server method: 'GET', callback: function(options, success, response) { 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(arguments); // Don't forget this! } });
foo.html
<p style="color: #00f;"> foo </p>
bar.html
<p style="color: #0f0;"> bar </p>
更简单:
正常添加按钮,因为它将是一个选项卡。。。然后,在tabpanel config元素中,添加:
listeners: {
activeitemchange: function(source, value, oldValue, eOpts) {
if(value.id == 'chiama') {
// do actions...
// for example open a link:
// document.location = 'www.google.it';
source.setActiveItem(oldValue); //avoid tab switching
return false; // avoid tab switching
}
}
}
除非您正在加载大量的数据,如大量的图像
、视频
、音频
等,否则我看不到这两种方法之间的任何区别,即当用户单击这些选项卡时加载或当应用程序启动时立即加载。
检查您正在这些选项卡中加载的数据,并进行相应的操作。
如果要在应用程序启动时加载数据,请使用initialize()
方法。
尝试将其添加到视图(未测试):
Ext.Ajax.request({
url: 'http://www.urlForTopStories', // you must have access to the server
method: 'GET',
callback: function(options, success, response) {
Ext.ComponentQuery.query('#image-tab')[0].setHtml(response.responseText);
}
});
如果您有. htaccess文件中的urlForTopStory
,则将其发送到服务器:
Header set Access-Control-Allow-Origin *
Header set Access-Control-Allow-Headers x-requested-with
如果您不在Apache上,请查看此CORS资源以获取更多帮助。
我试图使用axios将一个外部url加载到使用vuejs的div中,我得到了 CORS策略阻止了从origin访问在处的XMLHttpRequest:请求的资源上没有'Access-Control-Allow-Origin'标头。 我错过了什么? 堆栈跟踪: CORS策略阻止从来源“http://localhost:8080”访问位于“https://pay.stripe.com/receipts
问题内容: 在使用库在JavaScript中绘制图表时,我还是一个新手。我刚刚开始尝试使用Chartjs,但一直无法使用getJson或其他任何方式加载我的json对象并替换标签和数据。我以前使用过HighCharts,相比之下,它非常简单。另外,我将如何将其放入Angular的指令中并显示出来。 https://jsfiddle.net/0u9Lpttx/1/ index.html data
问题内容: 我有一个带有3个不同内容选项卡的Bootstrap“选项卡”导航。除了我要从选项卡导航之外链接到其中一个选项卡之外,它的工作原理都是完美的。这意味着当某人单击选项卡窗口外部的链接时,应将其设置为“活动”该选项卡并显示其内容。 现在,它正确显示了该选项卡的内容,但是该选项卡未设置为“活动”。我如何实现这一点,以使其像有人单击一样“活跃”? 这是代码: 非常感谢您的帮助或提示:) 问题答案
当我像下面的例子一样点击选项卡2时,我如何将选项卡1 Neumorphic css翻译成选项卡2呢,就像从选项卡1滑到选项卡2一样? https://dribble.com/shots/10805627-neumorphic-tab
Main.java Controller1.java Controller2.java 谢谢你的忠告! 编辑:语法
我有一个示例项目,设置如下: 其中“测试项目”依赖于“测试库”,而最后一个依赖于“纯Java库”,编译该项目并启动此设置工作正常。 我现在正在考虑导入以前的Eclipse工作区,并与Android studio一起工作,问题是项目设置不同,我希望保持这种方式。 我尝试了很多配置,但没有找到一种方法来引用父文件夹范围之外的项目(在示例中为'root')。 在许多平台/模块中,您可以使用“..”但这对