Sencha Touch 2 MVC - 如何使用按钮切换视图

2023-11-21

我有这个控制器:

Ext.define('MyApp.controller.Test', {
    extend: 'Ext.app.Controller',

    config: {

    },

    refs: [
        {
            ref: 'first',
            selector: '#first'
        },
        {
            ref: 'second',
            selector: '#second'
        }
    ],

    views : [
        'TestMain',
        'TestSecond'
    ],

     init: function() {
          this.getTestMainView().create();


        this.control({
            '#first': {
                tap: function() {
                    //how do I go to second view here?
                }
            },
            '#second': {
                tap: function() {
                }
            }
        });
    }
});

这两个视图:

    Ext.define('MyApp.view.TestMain', {
    extend: 'Ext.Container',
    xtype: 'testmain',

    config: {
        fullscreen: true,
        layout: 'vbox',
        scrollable: true,
         items: [
                {
                    xtype: 'button',
                    ui: 'normal',
                    id: 'first',
                    text: 'Go To Second Screen',
                    handler: function() {

                        //how do I go to second view here?
                    }
                }
            ]
        }
});

...

    Ext.define('MyApp.view.TestSecond', {
    extend: 'Ext.Container',
    xtype: 'testsecond',

    config: {
        fullscreen: true,
        layout: 'vbox',
        scrollable: true,
        items: [
                {
                    xtype: 'button',
                    ui: 'normal',
                    id: 'second',
                    text: 'Go To First Screen',
                    handler: function() {
                    }
                }
            ]
        }
});

我希望当我单击第一个按钮时加载第二个视图,反之亦然当我单击第二个按钮时加载。看来我可以在按钮处理程序或控制部分中添加代码 - 我希望能提供两者的示例(除非它们相同),并且可能解释哪种方法最好以及原因。

请注意,我不想使用卡片布局或选项卡面板 - 我想知道如何从一个独立视图切换到另一个独立视图(在我的应用程序中,我有一个卡片面板和一个选项卡面板,我需要使用按钮在两个组之间切换)

Thanks!!


您应该使用而不是处理程序this.control在控制器中:

this.control({
    '#first': {
        tap: function() {
            Ext.Viewport.add({
                xtype: 'testsecond'
            });
        }
    },

(您可以删除handlers:从视图定义中的按钮)

另外,您可能不应该首先对 id 进行硬编码。

我处理这样的按钮的方式是:

items: [
            {
                xtype: 'button',
                ui: 'normal',
                text: 'Go To First Screen',
                go: 'testsecond'
            },
       ...

然后在适用于所有视图的基本控制器中,我执行以下操作:

this.control({
    'button[go]': {
        tap: function(btn) {
            Ext.Viewport.setActiveItem({
                xtype: btn.go
            });
        }
    },
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Sencha Touch 2 MVC - 如何使用按钮切换视图 的相关文章

  • 如何将 webfont 与 @font-face 一起使用

    我想将应用程序中的字体更改为自定义字体 但以下代码不起作用 font face font family ArnoProBold src url resources fonts ArnoProBold ttf font face font f
  • FB.getLoginStatus 突然停止在 Android 浏览器上工作

    我曾经使用过这段代码 FB getLoginStatus function response 但突然间它不起作用 回调不会触发 但奇怪的是 仅适用于 android 本机浏览器 测试过 4 0 4 1 它适用于 iPhone iPad Ch
  • Sencha Architect 3 不使用 app.css

    我正在尝试将自定义字体图标添加到我的 sencha Architect 项目中 并删除不必要的主题类 但似乎 Sencha Architect 根本不使用 app scss 位于我项目的 resources sass 文件夹中 我所做的更改
  • 在 Sencha Touch 2 中从商店加载轮播?

    有没有人有一个代码示例 可以从商店 在我的例子中是 JSON 商店 加载 Sencha Touch 2 Carousel 组件 我了解如何加载扩展 DataView 的列表 但 Carousel 似乎是一个更难解决的问题 因为它不扩展 Da
  • 在 Sencha Touch 2.2.1 中运行应用程序示例时出现 JavaScript 错误

    我开始在 Windows 8 上使用最新的 Sencha Touch 2 2 1 开发移动应用程序 我做了以下步骤http docs sencha com touch 2 2 1 guide getting started http doc
  • 如何在 Sencha Touch 中销毁非活动视图

    我遇到了一个我认为非常重要的问题 在一个简单的 Sencha Touch 应用程序中 我有很多视图 我的主视图是一个底部带有停靠图标的选项卡面板 有时在我的应用程序中 我会切换到选项卡面板之外的另一个视图 我不希望 DOM 因视图而超载 我
  • deviceready 尚未在 Phonegap 2.9.0 中与 sencha touch 2 一起触发

    我使用 PhoneGap 2 9 0 和 SenchaTouch 来开发我的 Android 应用程序 targetSdkVersion 16 当我在 Chrome 中启动应用程序时 我收到了这样的日志 Falling back on PR
  • Sencha Touch 2.1 本机(android)应用程序无法从远程获取 json(它适用于 PC)

    我通过观看此视频创建了我的第一个 Sencha touch 2 应用程序 http youtu be 5F7Gx0 W M4 http youtu be 5F7Gx0 W M4 并且它的商店页面结构如下 Ext define FirstAp
  • 基于 HTML 5 的移动开发的最佳框架是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 导航视图 Sencha Touch 2

    我在 Sencha Touch 2 中的 NavigationView 有问题 当我按下 后退 按钮时 我无法导航多个窗口 我使用 view push 和 view pop 进行导航 view js Ext define MyApp vie
  • 在 Sencha Touch 中禁用轮播过度滚动/过度拖动

    在 Sencha Touch 2 轮播的末尾或开头 用户可以将项目拖过它应该能够到达的位置并显示白色背景 此处的屏幕截图 https i stack imgur com i10Ak png https i stack imgur com i
  • Sencha Touch - 需要嵌套列表示例

    我需要一个简单的嵌套列表视图示例 类似这样的事情 source roosteronacid com http www roosteronacid com mockup png 当您单击某个项目时 您将过渡 滑动 到包含另一个列表的下一个视图
  • 如何阻止 iOS 启动图像在 Phonegap / Sencha Touch 中向上移动

    我有一个 Sencha Touch 1 1 Phonegap 1 3 应用程序 并且有一个根据 iOS 文档调整大小的纵向和横向启动图像 当应用程序首次启动时 两个启动图像都正确定位 显示加载旋转器后 启动图像会垂直移动少量 在屏幕底部留下
  • Sencha Touch - Google 地图并将标记居中

    是我一个人的问题还是谷歌地图 API 似乎有点奇怪 尝试简单地显示某些坐标的标记 然后将屏幕置于标记的中心 在我的控制器中从视图触发 onGoogleMapRender function googleMap var long record
  • Sencha Touch 2 安卓性能

    我听说 sencha 一般来说 仅仅因为使用 javascript 在 Android 设备上就存在性能问题 我熟悉 android webview 对象的局限性 但我想知道这些性能声明是否有任何优点 特别是在 Sencha Touch 2
  • iOS9 ATS:基于 HTML5 的应用程序怎么样?

    根据来自的文档https developer apple com library content releasenotes General WhatsNewIniOS Articles iOS9 html apple ref doc uid
  • store.sync() 回调

    store sync 有回调吗 我正在尝试这样做 store sync function alert 1 但它不起作用 这家店是当地的一家店 sync 没有 回调 为了实现此行为 您需要监听存储的写入事件 查看这个解决方案 https st
  • 如何设置行高 Sencha Touch List

    如何设置 Sencha Touch List 对象中的行高 我使用 HTML 来格式化行 多行行会变得更高 但如何设置行高 谢谢 格里 要编辑列表元素的默认高度 有两种方法 使用 SASS 创建您自己的 Sencha 主题 官方 Sench
  • 对于 android 系统,使用 Sencha Touch 或 Phonegap 哪一个更好? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 未捕获的 InvalidValueError:setMap:不是 Map 的实例

    当我使用sencha touch2 2 1时 我遇到了一个问题 在查看器中 items id mapCanvas xtype map useCurrentLocation true 在控制器中 var map Ext getCmp mapC

随机推荐