Sencha Touch 如何为选择字段做条件侦听器

Sencha Touch how to do conditional listeners for a selectfield

好的,这是我的问题。我有一个带有一些选项的 select 字段。 select 字段用于过滤我的列表。所以在 select 字段中有按学科筛选。当用户 select 它显示当前隐藏的学科字段时,但是当用户选择按学生筛选时,学科字段将自行隐藏,而学生字段(也是隐藏的)将显示。但我似乎无法弄清楚代码。顺便说一句,我是 sencha touch 的新手。我正在使用 sencha touch 2.4.2。这是我的代码:-

{
                        //first item of vbox(1)
                        xtype: 'container',
                        layout: 'hbox',
                        style: 'background-color:' + _ListHeaderColor() + '; color: floralwhite;',
                        margin: '10 10',
                        items: [
                            {
                                //first item of hbox
                                html: "Request List (Request Patient)",
                                margin: '15 15',
                                flex: 1
                            }, //end of first item of hbox
                            {
                                //second item of hbox
                                xtype: 'selectfield',
                                id: 'choose',
                                name: 'filter',
                                label: 'Filter By',
                                margin: '5 5',
                                width: '20%',
                                options: [
                                            { text: '-', value: 'none' },
                                            { text: 'Discipline', value: 'disc' },
                                            { text: 'Student', value: 'stud' },
                                ],
                            listeners: {
                                change: function (field, newValue) {
                                    if (value) {
                                        var disp = Ext.getCmp(newValue).show();
                                        var disp = Ext.getCmp(newValue).hide();
                                    }
                                    else {
                                        var disp = Ext.getCmp(newValue).show();
                                        var disp = Ext.getCmp(newValue).hide();
                                    }
                                }
                            }
                        },
                        {
                            xtype: 'selectfield',
                            id: 'disc',
                            name: 'discipline',
                            label: 'Discipline',
                            margin: '5 5',
                            hidden: true,

                            store: _DataStore_RequestPatient,
                            displayField: 'text',
                            valueField: 'value'
                        },
                        {
                            xtype: 'searchfield',
                            id: 'stud',
                            name: 'student',
                            label: 'Students',
                            hidden: true
                        }
                    ]
                },

好吧,您应该提供收到的错误消息。你应该发现

value is not defined

但这只是冰山一角。出于礼貌,我已经为您修复了您的代码。

https://fiddle.sencha.com/#fiddle/1a1h