0

我的所有选择字段都有一个奇怪的问题。当我第一次进入一个视图时,它包含一个带有在控制器中定义的更改事件侦听器的选择字段,它工作正常。我可以做一个选择,事件就会触发。但是当我进入另一个视图并弹出该视图以便我返回带有选择字段的视图时,更改事件不再触发。选定的值也消失了。我试图将侦听器添加到视图中的配置中,但这根本不起作用?

这或多或少是我正在做的一个例子。

控制器:

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 和浏览器上测试。

任何帮助都会很棒!提前致谢!

4

2 回答 2

1

我遇到了同样的问题,因为我使用的是在运行时定义和实例化的视图。第一次很好,第二次控制器正在失去听众。

我简单地使用 dom 子查询解决了这个问题。

配置:{ refs:{ RecordTypeSelectField:' NewRecordPanel #recordTypeSelectField'

Essentially you simply add the parent container to the query key. That's all!

于 2013-01-19T10:56:13.097 回答
0

我发现了这个错误。我使用的是id,但itemId更好。这是帮助我弄清楚这一点的答案。

id:'myid'

替换为

itemId:'myid'

需要更改一些代码才能再次获得正确的元素,但现在它可以工作了

于 2012-11-03T15:35:57.943 回答