Tengo un formulario con varios elementos. Por ejemplo, un cuadro combinado, aquí la parte Ver:
xtype: 'combobox', fieldLabel : 'Position de la commission', labelAlign : 'top', padding:'20 0 0 0', displayField: 'parametreLibelle', valueField: 'parametreValeur', queryMode: 'local', bind : { value: '{argumentairePosition}', store : '{positionsCommissionStore}' }, reference : 'argumentairePosition', itemId:'argumentairePosition', listeners: { click: { element: 'inputEl', fn: 'onArgumentairePositionClick' } }Llamo a una función que debería cambiar el valor seleccionado en el cuadro combinado:
onAmendementReferenceChange: function() { let me = this; let amdtId = this.lookupReference('amendementDeReference').value; me.ajaxRequest({ url: '/eloi/grille/changerAmendementReferenceArgumentaire', method: 'GET', params: { amdtId: amdtId }, successFn: function (record) { let serverResponse = record && record.responseText ? Util.decodeJson(record.responseText) : undefined; let formulaireData = serverResponse ? serverResponse.data : undefined; if (formulaireData) { let vm = me.getViewModel(); let store = vm.get('argumentaireRendreIdentiqueStore').first(); store.set('argumentaireObjet', formulaireData.argumentaireObjet); store.set('argumentaireTexte', formulaireData.argumentaireTexte); store.set('argumentairePosition', formulaireData.argumentairePosition); // Breakpoint here store.set('argumentairePositionRapporteur', formulaireData.argumentairePositionRapporteur); store.set('argumentaireAmendementId', formulaireData.argumentaireAmendementId); //me.getView().refreshView(); } } }); } Cuando coloco un punto de interrupción en mi navegador en la línea indicada por un comentario, puedo ver que el valor de la tienda en realidad está cambiando (observando store.get('argumentaireObjet') en el depurador antes y después de la línea), pero el el contenido de mi formulario no está actualizado en mi página. Y no puedo entender por qué. ¿Alguna idea?
Probé varios trucos para actualizar el formulario, pero normalmente, el enlace debería funcionar. No debería tener que actualizar. ¿Qué me estoy perdiendo?
Estoy usando ExtJS 6.
OK, esto realmente está funcionando. Necesitaba cambiar el valor en ViewModel, no en la Tienda.
onAmendementReferenceChange: function() { let me = this; let amdtId = this.lookupReference('amendementDeReference').value; me.ajaxRequest({ url: '/eloi/grille/changerAmendementReferenceArgumentaire', method: 'GET', params: { amdtId: amdtId }, successFn: function (record) { let serverResponse = record && record.responseText ? Util.decodeJson(record.responseText) : undefined; let formulaireData = serverResponse ? serverResponse.data : undefined; if (formulaireData) { let vm = me.getViewModel(); vm.set('argumentaireObjet', formulaireData.argumentaireObjet); vm.set('argumentaireTexte', formulaireData.argumentaireTexte); vm.set('argumentairePosition', formulaireData.argumentairePosition); vm.set('argumentairePositionRapporteur', formulaireData.argumentairePositionRapporteur); vm.set('argumentaireAmendementId', formulaireData.argumentaireAmendementId); } } }); }