Sencha touch sencha touch 2中面板的事件流

Sencha touch sencha touch 2中面板的事件流,sencha-touch,sencha-touch-2,Sencha Touch,Sencha Touch 2,这是我的应用程序架构 var loginView = Ext.create('Ext.Panel',{ id: 'LoginView', ..... }); var homeView = Ext.create('Ext.TabPanel',{ id: 'HomeView', items: [ { xtype: 'list', title: 'Home',

这是我的应用程序架构

var loginView = Ext.create('Ext.Panel',{
    id: 'LoginView',
    .....
});
var homeView = Ext.create('Ext.TabPanel',{
    id: 'HomeView',
    items: [
           {
                xtype: 'list',
                title: 'Home',
                store: Ext.create('TweetStore'),
                disableSelection: true,
                ....
            },
            {
                title: 'Reply',
                ....
            },
            {
                title: 'DM',
                ....
            }
    ]
});
var mainView = Ext.create('Ext.Panel',{
    id: 'MainView',
    layout: 'card',
    items: [ loginView, mainView ]
});
Ext.define('TweetStore', {
        extend: 'Ext.data.Store',
        config: {
            fields: ...
            pageSize: 25,
            autoLoad: true,
            proxy: {
                type: 'ajax',
                url: '/home',
                pageParam: 'page',
                limitParam: 'count',
                reader: {
                    type: 'json'
                }
            }
        }
    });
main视图中有两个面板
LoginView
是一个登录页面,用户在其中输入用户名和密码。授权成功后,将显示第二个面板
HomeView

我的问题是:

  • 我希望在授权后加载
    TweetStore
    中的数据,即当
    HomeView
    显示时,数据开始加载。但是
    show
    事件即使在 面板仍然隐藏。我该参加什么比赛
  • 当应用程序启动时,我想发送一个ajax请求来检查用户是否登录,如果为true,则显示
    LoginView
    隐藏和
    HomeView
    显示。在什么情况下我应该检查这个
  • 问题1)你应该倾听事件

    每当此组件在上实际可见(绘制)时激发 屏幕。这在需要执行“读取”操作时非常有用 在DOM元素上,即:计算自然大小和定位

    问题2)在事件发生时发送用于用户身份验证的ajax请求

    组件初始化后激发

    问题1)你应该倾听事件

    每当此组件在上实际可见(绘制)时激发 屏幕。这在需要执行“读取”操作时非常有用 在DOM元素上,即:计算自然大小和定位

    问题2)在事件发生时发送用于用户身份验证的ajax请求

    组件初始化后激发


    -第一个问题:

    painted
    事件看起来不错,但实际上,根据我的经验,Sencha Touch 2的当前版本中充满了可怕的bug。不要依赖其存在和文件

    根据您所描述的,很明显,您希望在特定事件(授权)之后加载存储,那么在此之后触发自定义事件如何?例如:

    loginForm.firevent('authenticated',this)
    (或您需要的任何额外参数)

    然后在控制器中,只需在
    loginForm
    视图上收听事件
    authenticated

    -第二个问题:


    正如您所说,您希望在应用程序启动后立即运行一些进程。因此,将代码放在
    app.js
    launch()
    函数中是正确的。很简单。

    -第一个问题:

    painted
    事件看起来不错,但实际上,根据我的经验,Sencha Touch 2的当前版本中充满了可怕的bug。不要依赖其存在和文件

    根据您所描述的,很明显,您希望在特定事件(授权)之后加载存储,那么在此之后触发自定义事件如何?例如:

    loginForm.firevent('authenticated',this)
    (或您需要的任何额外参数)

    然后在控制器中,只需在
    loginForm
    视图上收听事件
    authenticated

    -第二个问题:


    正如您所说,您希望在应用程序启动后立即运行一些进程。因此,将代码放在
    app.js
    launch()
    函数中是正确的。很简单。

    谢谢~Q1:我应该在
    TweetScore
    中更改一些内容吗?现在它是自动加载的,就在应用程序开始时。Q2:在哪个视图中初始化()事件<代码>主视图
    登录视图
    ?因为我意识到LoginView是先初始化的。谢谢~Q1:我应该在
    TweetScore
    中更改什么吗?现在它是自动加载的,就在应用程序开始时。Q2:在哪个视图中初始化()事件<代码>主视图或
    登录视图
    ?因为我知道LoginView是先初始化的。