Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Передача параметра в proxy из combo (https://javascript.ru/forum/extjs/48560-peredacha-parametra-v-proxy-iz-combo.html)

adamenko.artem 08.07.2014 16:26

Передача параметра в proxy из combo
 
{
                xtype:'combo',
                id: 'currentRoutes',
                fieldLabel: 'Маршрут',
                store: Ext.create('Ext.data.Store', {
                        fields: [
                            {name: 'NAME_'},
                            {name: 'ROUTE'}
                        ],
                        proxy: {
                            type: 'ajax',
                            url: 'GetCurrentRoutes',
                            reader: {
                                type: 'json',
                                root: 'rows'
                            }
                        }
                }),
                displayField: 'NAME_',
                emptyText: 'Выберите маршрут...',
                valueField: 'ROUTE',
                listeners: {
                    render: function(combo) {
                        combo.getStore().load();
                    },
                    select: function( combo, records, eOpts ){
                        Ext.routeId = combo.getValue();
                        me.routeId = combo.getValue();
                    }
                }
        },{
                xtype: 'combo',
                fieldLabel: "Гос.номер",
                id: 'currentBuses',
                store: Ext.create('Ext.data.Store', {
                        fields: [
                            {name: 'NAME_'},
                            {name: 'ROUTE'}
                        ],
                        proxy: {
                            type: 'ajax',
                            url: 'GetCurrentRouteBuses',
                            extraParams: {
                                idRoute: Ext.routeId
                            },
                            reader: {
                                type: 'json',
                                root: 'rows'
                            }
                        }
                }),
                emptyText: 'Выберите автобус...',
        }

собственно проблема в том, что в первом комбобоксе при записывании значения выбранного, в консоль выводится записанное значение, а уже во втором комбо при передаче значения как параметра, там уже пусто.хотя запоминаю в глобальные переменныю. не понимаю куда значение девается.

novikov 08.07.2014 17:34

Второй комбобокс загружает данный в стор в момент выполнения приведённого кода. В этот момент Ext.routeId не определено. Потом в выбираете что-то в первом комбобоксе, значение попадает в Ext.routeId. Однако уже поздно, второй стор загружен. Лучше попробуйте так:

select: function( combo, records, eOpts ){
	                        // Ext.routeId = combo.getValue(); -- globals are evil ;)
	                        me.routeId = combo.getValue();
	                        combo.next().getStore().load({
	                            params: {
	                                routeId: me.routeId
	                            }
	                        }
	                    }


Часовой пояс GMT +3, время: 07:06.