javascript - getcmp - modern extjs
ExtJS 5 vincula el cuadro combinado a la selección (0)
Imaginemos una aplicación simple: administración de usuarios. En la vista principal tenemos una lista de usuarios en una grilla; seleccionar un usuario habilitará el botón ''Editar''. Estamos agarrando la fila seleccionada en la grilla (usando el bind {selection : ''selectedUser'';}
y luego pasamos esto a la vista ''Edit'': Ext.create(''viewName'', {viewModel:{data : selectedUser}});
Ahora, en los términos más simples, el modelo de "usuario" tiene un "nombre" y un "idioma". El formulario de edición tendrá un cuadro de texto para ''nombre'' y un cuadro combinado para el idioma. Este cuadro combinado se vincula a una tienda que contiene todos los idiomas con ''langId'' y ''langName'' como campos:
xtype: ''combobox'',
displayField: ''langName'',
valueField: ''langId'',
bind: {
store: ''{allLangs}'',
value: ''{allLangs.langId}'',
selection: ''{selectedLang}''
}.
Además, el formulario ''Editar'' tendrá el cuadro de texto vinculado al nombre del usuario seleccionado:
bind : {value : ''{selectedUser.Name}''}
Ahora, en el evento afterRender
, estoy configurando el valor de langName
del selecteUser
como el valor seleccionado del combobox:
var displayValue = viewModel.get(''selectedUser'').get(''langName'');
langCombo.setValue(displayValue);
OK, ahora ¿cómo puede saber si el registro actual (''selectedUser'') ha cambiado el idioma? Si estoy comprobando el model.dirty
propiedad model.dirty
sigue siendo false
incluso si el valor del idioma no es el mismo que inicialmente. ¿Cómo debo vincular el cuadro combinado para que establezca la propiedad dirty
del modelo en true
cuando se modificó el valor seleccionado?
Obviamente, si estoy editando el name
el modelo tendrá la propiedad dirty
true
.
Gracias de antemano.