Sencha touch 2 第二次添加视图时,点击按钮不作出反应
当从列表中选择一个项目时,我执行以下代码行Sencha touch 2 第二次添加视图时,点击按钮不作出反应,sencha-touch-2,Sencha Touch 2,当从列表中选择一个项目时,我执行以下代码行 this.details = Ext.create('EventManager.view.EventInfoView'); this.getNavigationView().push(this.details); 因此,我创建了一个新视图,并将其推送到navigationview上。 在我的控制器中,我监听新创建的视图中acceptEventButton的点击 Ext.define('EventManager.controller.eventCont
this.details = Ext.create('EventManager.view.EventInfoView');
this.getNavigationView().push(this.details);
因此,我创建了一个新视图,并将其推送到navigationview上。
在我的控制器中,我监听新创建的视图中acceptEventButton的点击
Ext.define('EventManager.controller.eventController', {
extend: 'Ext.app.Controller',
config: {
refs: {
acceptEventButton: '#acceptEventButton'
},
control: {
"acceptEventButton": {
tap: 'onAcceptButtonTap'
}
}
},
...
第一次将此视图放置在navigationview上时,点击按钮即可工作。
当我按下后退按钮并按下另一个视图时,该按钮不起任何作用
我想按照现在的逻辑来解决这个问题。我不希望在创建视图时自己添加eventlisteners,然后推送它
这个问题存在于何处以及如何解决?发布了新版本的sencha architect,允许添加未列出的属性 我解决了这个问题,在我的按钮上添加了一个动作字段,并在我的控制器中对该动作做出反应
{
xtype: 'button',
id: 'acceptEventButton',
ui: 'confirm',
text: 'Accept',
action: 'acceptEvent'
}
在我的控制器中,我有以下代码行
control: {
"button[action=acceptEvent]": {
tap: 'onAcceptButtonTap'
}
}
我之前也遇到过同样的问题,通过在navigationView的配置中设置
autoDestroy:false,
解决了这个问题
将false应用于此autoDestroy属性后,它可以很好地工作。
希望它也适用于您。您应该按如下方式更改查询:
control: {
"button[id='acceptEventButton']": {
tap: 'onAcceptButtonTap'
}
}
Ext.define('app.view.Pages', {
extend: 'Ext.NavigationView',
xtype: 'pages',
...
}
control: {
"pages itemlist": {
itemtap: 'onItemTap'
}
}
作为额外信息:您也可以在这些查询中使用xtype。例如,如果您有如下导航视图:
control: {
"button[id='acceptEventButton']": {
tap: 'onAcceptButtonTap'
}
}
Ext.define('app.view.Pages', {
extend: 'Ext.NavigationView',
xtype: 'pages',
...
}
control: {
"pages itemlist": {
itemtap: 'onItemTap'
}
}
然后你像这样推送一个列表:
Ext.define('app.view.ItemList', {
extend: 'Ext.dataview.List',
xtype: 'itemlist',
...
}
然后,您可以按如下方式编写查询:
control: {
"button[id='acceptEventButton']": {
tap: 'onAcceptButtonTap'
}
}
Ext.define('app.view.Pages', {
extend: 'Ext.NavigationView',
xtype: 'pages',
...
}
control: {
"pages itemlist": {
itemtap: 'onItemTap'
}
}
彼此彼此。我对这个问题感到非常沮丧,
add()
方法也得到了同样的结果。我认为这是一个bug。你确定当删除并再次添加该组件时,这会起作用吗?你测试过了吗?谢谢你的回复,但这不会给我的按钮有id带来问题吗?按照您的建议,我的视图不会被破坏,只会创建并添加另一个版本。我想这会减慢应用程序的速度。欢迎但我认为在navigationView中,视图是通过stak处理的,通过设置autoDestry:false,它将从堆栈顶部删除当前视图对象。希望你能理解我的意思。:)