我在 Sencha Touch 2 中有一个 MVC 多项目和分页图像轮播,当在初始化时添加到视口时,它可以完美地独立运行。
但是,我现在遇到的问题是如何使其适应我的标签面板样式应用程序。我有点不清楚我应该把代码放在哪里,在 init 或(我猜)在点击特定选项卡时触发的控制器中。我的 tabpanel 风格的应用程序是从 Github 下载的(Sencha touch 2 样板模板)。
我的工作 MVC 轮播在 app.js 中调用以下内容:
controllers: ['Main'],
views: ['Carousel', 'Page'],
stores: ['Thumbnails'],
models: ['Thumbnail'],
launch: function () {
var carousel = Ext.create('Ext.Carousel');
Ext.Viewport.add(carousel);
Ext.getStore('Thumbnails').load(function (apps) {
var cols = 4, rows = 4; // todo: change for tablets
var page;
var btn;
var iPage = 0;
var iApp = 0;
var x = 1, y = 1, z = 0;
var row, grid, bottomrow;
var firstpage = 0;
等等......为了可读性而削减代码。
基本上我希望这个轮播出现在选项卡面板的第二个选项卡上,而不是最初出现在视口上,它现在是如何工作的。也许我应该在当我在选项卡面板的那个选项卡上时触发的控制器中拥有工作启动代码?我不确定解决这个问题的最佳方法。
这是我的 tabpanel 应用程序的启动功能,其中
launch: function() {
Ext.create('TCApp.view.Viewport', {fullscreen: true});
// 我尝试在创建视口后添加这个工作启动代码,但也许它应该在控制器中?但我不知道该怎么做......
var carousel = Ext.create('Ext.Carousel');
Ext.Viewport.add(carousel);
Ext.getStore('Thumbnails').load(function (apps) {
var cols = 4, rows = 4; // todo: change for tablets
var page;
var btn;
var iPage = 0;
var iApp = 0;
var x = 1, y = 1, z = 0;
var row, grid, bottomrow;
var firstpage = 0;
任何帮助将非常感激!