请帮帮我。 模型具有内置的验证支持,这些验证是针对Ext.data.validations中的验证器函数执行的。 我的代码:
Ext.define('User', {
extend: 'Ext.data.Model',
fields: [{
name: 'name',
type: 'string'
},{
name: 'age',
type: 'int'
},{
name: 'phone',
type: 'string'
},{
name: 'gender',
type: 'string'
},{
name: 'username',
type: 'string'
}],
validations: [
{
type: 'length',
field: 'name',
min: 2
},{
type: 'format',
field: 'username',
matcher: /([a-z]+)[0-9]{2,3}/
}]
});
var person = Ext.create('User', {
name: 'Eugene',
username: 'Popov',
gender: 'F',
age: 300,
Married: false
});
console.log(person.get('name'))
person.set('name','U');
console.log(person.get('name'))//U
});
我读过该模型可以过滤数据。 他们的工作原理是什么? 为什么我可以在我的例子中写错错误的值? 谢谢!
答案 0 :(得分:2)
模型验证不会自行拒绝更改。通过其他组件(如商店或网格编辑器)编辑模型可能会提供此功能。只有在模型上调用validate
或isValid
方法时,验证才会生效。
如果您的模特是商店的一部分,您可以收听商店的update
活动(link to docs)。在事件处理程序中,您可以验证模型并拒绝所需的任何更改。
// Simple demonstration
store.on('update', function (store, model, operation) {
if (operation === Ext.data.Model.EDIT && !model.isValid()) {
model.reject();
}
});