首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sencha Touch 2按钮松动监听器

Sencha Touch 2按钮松动监听器
EN

Stack Overflow用户
提问于 2012-03-24 20:36:08
回答 3查看 1.6K关注 0票数 4

我在Sencha Touch 2项目中有一个按钮。按钮在被按下后随视图一起销毁,并在另一个按钮被按下后重新生成。

但该按钮无法再次获得侦听器。

侦听器是在视图的控制器中构建的。

代码语言:javascript
复制
 Ext.application({
 name: 'App',
 controllers: ['Main','Home'],
 views: ['Main','Home'],
 launch: function () {Ext.Viewport.add({xtype:'mainview'});} 
 });

控制器

代码语言:javascript
复制
Ext.define('App.controller.Home', {extend: 'Ext.app.Controller',
config: {
    refs: {homeView: '#homeview',backBtn: '#btn_test1'},
    control: {
        backBtn: {
             tap: function(backBtn){
                console.log('[Controller][Home] btn monatsrate - - tap');
                 Ext.Viewport.add({xtype: 'mainview'});
                 Ext.Viewport.setActiveItem(1);
             }
        },
        homeView: {
            deactivate: function (homeView){
                console.log('[Controller][Home] autodestroy homeview');
                //homeView.destroy();
                Ext.Viewport.remove(homeView);
            }
        }
    }

},
});

和视图

代码语言:javascript
复制
Ext.define("App.view.Main", {
extend:"Ext.Container",
xtype:"mainview",
config:{
    id:'mainview',
    items:[
        {
            xtype:'button',
            id:'btn_test2',
            text: 'test2'
        }
    ]
},

});

你知道怎么让按钮让监听器回来吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-07 01:15:50

这是因为控制器中的" ref“使用按钮的id来创建ref。相反,请为您的按钮使用不同的选择器。例如,你可以给你的按钮一个"name“属性,并给它一个值"testbutton”。那么你的裁判就会像这样

代码语言:javascript
复制
refs: {homeView: '#homeview',backBtn: 'button[name=testbutton]'},

对于在整个应用程序流程中多次创建/销毁的按钮和列表项,我也遇到了同样的问题。从那时起,我已经读过几次,一般来说,Sencha Touch团队建议不要使用id作为选择器,除非您有特定的原因。上面的"name“方法对我来说非常有效。您还可以使用许多其他css样式的选择器(您必须单独阅读)。

正如在前面的评论中提到的,我会接受一些答案,以增加在未来获得您问题的答案的可能性。我之所以回答这个问题,是因为我在这个问题上撞了4个小时。

票数 3
EN

Stack Overflow用户

发布于 2012-05-17 03:06:42

Sencha的例子建议在按钮上使用action config,比如'cancel','goHome','createPost‘等。这就说得通了。

然后,所有引用的格式为: myContainer buttonaction=myAction

票数 1
EN

Stack Overflow用户

发布于 2012-05-15 22:13:02

我相信你的问题就是id参数。如果你添加了任何id,你应该确保它是唯一的,因此添加一个id到你的自定义视图的配置中将导致创建一个以上的实例!我可能不是100%正确的(可能在一个容器中,但我相信它无论如何都会引起问题),但是你为什么那么想要一个id呢?此外,您还可以简单地通过xtype引用视图:

代码语言:javascript
复制
refs: {homeView: 'homeview',backBtn: 'btn_test1'},

致以敬意,

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9851819

复制
相关文章

相似问题

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