¿Cómo solucionar un ComboBox dependiente atascado?
Hola humanidad.
Veréis, tengo dos Combobox, uno depende de otro.
En esta ocación seguí un patrón de pasar el combo dependiente como un parámetro del combo principal:
var comboDepende = Ext.create('ComboDependeClass');
var comboPrinipal = Ext.create('ComboPrincipal', {comboDependiente: comboDepende});
A la clase de comboPrincipal he programado que cuando se seleccione recargue el combodependiente:
//En comboPrincipal
listeners:{
select: function(self, model){
if(!Ext.isEmpty(self.comboDependiente)){
self.comboDependiente.reset();
self.comboDependiente.getStore().load({params: {parent_id: model[0].get('id')} });
}
}
}
Bien. Cuando se carga el formulario el comboPrincipal autocarga su Store, y funciona. Luego selecciono un elemento de ese comboPrincipal y ejecuta bien el método, carga los datos en comboDepende. Entonces, selecciono un elemento en comboDepende y sigue funcionando bien. El problema viene, cuando entonces, de nuevo cambio de elemento de comboPrincipal, que de nuevo este ejecuta bien su función, pero comboDepende queda con la máscara de "loading..."
Lo peor es que comboDepende se ha recargado bien con la nueva data, pero es inseleccionable por esa máscara...
Si veo la actividad en la red (estoy usando crhomium) me muestra que la petición se realizó con éxito y retornó un 200 OK
No entiendo porqué comboDepende queda con la máscara... ¿Alguna indea?
Les dejo un ejenmplo resumido de mi clase comboDepende:
Ext.define('ComboDepende', {
extend: 'Ext.form.field.ComboBox',
valueField: 'id',
displayField: 'name',
queryMode: 'local',
typeAhead: false,
triggerAction: 'all',
initComponent: function(){
this.store = Ext.create('Ext.data.Store', {
autoLoad: false,
model: 'Model',
proxy: {
type: 'ajax',
api: {
read: 'getData',
},
actionMethods: {
read: 'POST'
},
reader: {
type: 'json',
root: 'data'
}
}
});
this.callParent();
}//Fin del método inicComponent
});
¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook
Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.