En ExtJS 6.2, ¿cómo puedo definir un campo de modelo que puede tener diferentes valores, por ejemplo, cadena o booleano y validar que puede ser true , false o una cadena?
En el siguiente modelo, el value puede ser una cadena o un valor booleano.
Ext.define('my_model', { extend : 'Ext.data.Model', fields: [{ name : 'name', type : 'string', unique : true }, { name : 'value', convert(value) { switch (value) { case 'Y': return true; case 'N': return false; default : return value; } } }], validators: { value: { // How do I validate it? } } });Puede usar el campo automático y validar la propiedad:
Ext.define('my_model', { extend: 'Ext.data.Model', fields: [{ name: 'name', type: 'string', unique: true, }, { name: 'value', type: 'auto', convert(value) { switch (value) { case 'Y': return true; case 'N': return false; default: return value; } }, validate: function (value) { return ['boolean', 'string'].indexOf(typeof value) !== -1; } }] }); Ext.application({ name: 'Fiddle', launch: function () { var myModel = Ext.create('my_model', { name: 'Some name', value: 'N' }); console.log(myModel.getData()); console.log(myModel.isValid()); } });