我在Sencha Touch 2中的NavigationView出现问题.
当我按下“后退”按钮时,我不能浏览多个窗口.
我使用view.push()和view.pop()进行导航.
view.js:
Ext.define('MyApp.view.view', {
extend: 'Ext.navigation.View',
alias: 'widget.View',
config: {
id: 'nvView',
items: [
{
xtype: 'toolbar',
docked: 'bottom',
layout: {
align: 'center',
pack: 'center',
type: 'hbox'
},
items: [
{
xtype: 'button',
iconAlign: 'center',
iconCls: 'info',
iconMask: true,
text: 'Ayuda'
},
{
xtype: 'button',
iconAlign: 'center',
iconCls: 'compose',
iconMask: true,
text: 'Guardar'
},
{
xtype: 'button',
id: 'volver',
iconAlign: 'center',
iconCls: 'reply',
iconMask: true,
text: 'Volver'
}
]
},
{
xtype: 'formpanel',
title: 'View',
html: 'View1',
id: 'View1',
styleHtmlContent: true,
items: [
{
xtype: 'button',
docked: 'bottom',
id: 'bView1',
margin: 10,
ui: 'forward',
text: 'siguiente'
}
]
}
]
}
});
view2.js:
Ext.define('MyApp.view.View2', {
extend: 'Ext.form.Panel',
alias: 'widget.View2',
config: {
fullscreen: true,
html: 'View2',
id: 'View2',
styleHtmlContent: true,
items: [
{
xtype: 'button',
docked: 'bottom',
id: 'bView2',
margin: 10,
ui: 'forward',
text: 'siguiente'
}
]
}
});
view3.js:
Ext.define('MyApp.view.View3', {
extend: 'Ext.form.Panel',
alias: 'widget.View3',
config: {
fullscreen: true,
html: 'View3',
id: 'View3',
styleHtmlContent: true,
items: [
{
xtype: 'button',
docked: 'bottom',
id: 'bView3',
margin: 10,
ui: 'forward',
text: 'siguiente'
}
]
}
});
ViewController.js:
Ext.define('MyApp.controller.ViewController', {
extend: 'Ext.app.Controller',
config: {
views: [
'View'
],
refs: {
bView1: 'bView1',
bView2: 'bView2'
},
control: {
"#bView1": {
tap: 'onView1'
},
"#bView2": {
tap: 'onView2'
}
}
},
onView1: function(button, e, options) {
button.up('navigationview').push({
xtype: 'View2',
title: 'View2'
});
},
onView2: function(button, e, options) {
button.up('navigationview').push({
xtype: 'View3',
title: 'View3'
});
}
});
我的问题的一个例子是:
我从view1开始,然后按“ siguiente”按钮,然后转到view2.如果我按“后退”按钮(在NavigationView中),则转到view1,然后按“ siguiente”按钮,然后转到view2,但是在view2中,按“ siguiente”按钮,我不能转到view3.
提前非常感谢您!
解决方法:
这是因为您使用的是id,所以当您第二次启动它时,它将出现冲突,显示警告,并且功能无法正常工作.如果您使用itemId,将会很安全.
itemId: 'bView1' //same for other view bView2, bView3
要在控制器中引用您的itemId,只需例如执行以下操作:
refs: {
bView1: '[itemId=bView1]',
bhView2: '[itemId=bView2]',
bhView3: '[itemId=bView3]'
},
control: {
bView1: {
tap: 'onView1'
},
bhView2: {
tap: 'onView2'
},
},
onView1: function(button, e, options) {
button.up('navigationview').push({
xtype: 'View2',
title: 'View2'
});
},
onView2: function(button, e, options) {
button.up('navigationview').push({
xtype: 'View3',
title: 'View3'
});
}
希望能帮助到你 :)
标签:sencha-touch-2,javascript 来源: https://codeday.me/bug/20191031/1975424.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。