我的所有选择字段都有一个奇怪的问题。当我第一次进入一个视图时,它包含一个带有在控制器中定义的更改事件侦听器的选择字段,它工作正常。我可以做一个选择,事件就会触发。但是当我进入另一个视图并弹出该视图以便我返回带有选择字段的视图时,更改事件不再触发。选定的值也消失了。我试图将侦听器添加到视图中的配置中,但这根本不起作用?
这或多或少是我正在做的一个例子。
控制器:
Ext.define('MyApp.controller.Search', {
extend: 'Ext.app.Controller',
config: {
refs:{
distanceSelect:'#distanceSelect',
},
control:{
distanceSelect:{
change:'filterSearchList',
},
}
},
filterSearchList:function(){
alert('42!!');
}
});
看法:
Ext.define('Abedrijven.view.search.Search_main', {
extend:'Abedrijven.view.Screen',
alias:'widget.search_main',
requires:[
'Ext.field.Select',
],
config:{
items:[{
xtype: 'selectfield',
id: 'distanceSelect',
name:'distance',
options: [{
text: '- All -',
value: '0'
}, {
text: '5 Km.',
value: '5'
}, {
text: '10 Km.',
value: '10'
}
}]
}
});
编辑
我的 app.js 中有这个。当我想改变视图时,我会调用这些。
launch: function() {
// Destroy the #appLoadingIndicator element
Ext.fly('appLoadingIndicator').destroy();
// Initialize the main view
var view = Ext.create('Abedrijven.view.Main');
Ext.Viewport.add(view);
Abedrijven.app.view = view;
Abedrijven.app.pushView = function(xtype,data){
Abedrijven.app.view.push({xtype:xtype,data:data});
}
Abedrijven.app.popView = function(){
Abedrijven.app.view.pop();
},
Abedrijven.app.goHome = function(){
Abedrijven.app.view.reset();
}
Abedrijven.app.view.add({xtype:'home_main'});
},
我的主要观点:
Ext.define("Abedrijven.view.Main", {
extend:'Ext.NavigationView',
requires:[
'Ext.Toolbar',
'Ext.tab.Panel',
'Ext.TitleBar',
],
alias:'widget.main',
id:'mainview',
config:{
cls:['mainview'],
fullscreen: true,
ui:'dark',
items:[
第一次一切正常时,更改为其他视图,然后更改回此视图,更改事件不会触发。我正在使用 ST 2.0.1.1 GPL。在 iOS 和浏览器上测试。
任何帮助都会很棒!提前致谢!