ExtJS - 具有混合值类型的模型字段
ExtJS - Model field with mixed value types
在 ExtJS 6.2 中,如何定义可以具有不同值的模型字段,例如字符串或布尔值,并验证它可以是 true
、false
或字符串?
在波纹管模型中,value
可以是字符串或布尔值。
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?
}
}
});
您可以使用自动字段并验证 属性:
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());
}
});
在 ExtJS 6.2 中,如何定义可以具有不同值的模型字段,例如字符串或布尔值,并验证它可以是 true
、false
或字符串?
在波纹管模型中,value
可以是字符串或布尔值。
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?
}
}
});
您可以使用自动字段并验证 属性:
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());
}
});