首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sencha Touch 2事件:绘画vs表演?

Sencha Touch 2事件:绘画vs表演?
EN

Stack Overflow用户
提问于 2012-06-04 03:12:41
回答 3查看 12.2K关注 0票数 2

我有一个关于show事件的问题。在我的应用程序中,我像这样处理面板的painted事件:

代码语言:javascript
复制
Ext.define('mvcTest.controller.Test', {
    extend: 'Ext.app.Controller',
    config: {
    refs: {
            panel: '#testpanel'
    },
    control:{
                panel: {
                    painted: 'onPainted'        
                }
        }
    },
    onPainted: function(){
        alert('painted');
    }
});

文档说,还有一个"show“事件,但它根本没有被触发:

代码语言:javascript
复制
Ext.define('mvcTest.controller.Test', {
    extend: 'Ext.app.Controller',
    config: {
    refs: {
            panel: '#testpanel'
    },
    control:{
                panel: {
                    show: 'onShow'        
                }
        }
    },
    onShow: function(comp, obj){
        alert('show');
    }
});

为什么这不起作用?我知道,提醒是错误的,但这不是问题所在。谢谢,迈克

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-04 17:32:23

看起来你的控制器没有错误。关键原因可能在于应用程序的另一部分,但是...好的,根据我的经验:

  • painted事件简单明了。每当你的视图真正呈现在屏幕上时,painted就启动了。(注意:painted事件在视图的子组件完全呈现之前触发。换句话说,DOM生成second.)
  • show事件不一定会触发painted first,尤其是在视图初始化时。show事件是当你先以某种方式隐藏你的视图,然后再显示它的时候触发的事件。

只是经验,可能是不同的。但希望能对你有所帮助。

票数 9
EN

Stack Overflow用户

发布于 2012-06-04 03:30:11

你的不能在控制器中处理'painted‘事件,因为它没有被冒泡起来。

来自sencha文档:此事件不可用于事件委派。相反,由于性能原因,只有当您显式地向其添加至少一个侦听器时,才会触发“绘制”。您可以通过在面板中定义侦听器来处理它。

代码语言:javascript
复制
Ext.define('MyApp.view.MyPanel', {
  extend: 'Ext.Panel',
  config: {
  },
  listeners: {
    painted: function (element, options) {
      console.log("I've painted");
    }
  }
});

但是“show”事件可以在控制器中处理。检查应用程序的另一部分是否能看到该控制器。(您是否提供了您的控制器的参考资料?您的面板id是否正确?)

票数 6
EN

Stack Overflow用户

发布于 2017-02-07 18:39:29

我知道这是一个古老的线程,但有些人可能会发现它很有用: Sencha最初并不会触发'show‘和’an‘事件。你需要一开始就触发它。

使用以下代码片段侦听来自控制器的事件:

代码语言:javascript
复制
Ext.define('MyApp.view.MyPanel', {
  extend: 'Ext.Panel',
  config: {
  },
  listeners: {
    painted: function (element, options) {
      this.fireEvent('painted', [element, options])
    }
  }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10873143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档