Sencha Touch - 模型
模型基本上是数据或字段的集合,单独用于存储某些特定类型的信息。
由于 Sencha 遵循基于基础的架构,因此可以自定义类来执行特定任务。
Ext.data.Model 是我们在定义任何模型时需要扩展的基类。
定义模型
Ext.define('Student', { extend: 'Ext.data.Model', config: { fields: [ { name: 'id', type: 'int' }, { name: 'name', type: 'string' } ] } });
字段
字段用于存储信息,其集合称为模型。
我们主要在模型中定义以下类型的字段 −
- 整数
- 字符串
- 布尔值
- 浮点数
语法
{ name: 'id', type: 'int' }, { name: 'name', type: 'string' }, { name: 'marks', type: Float }, { name: 'newStudent', type: 'boolean' }
验证器
在 Sencha Touch 中,模型支持多种验证,以确保数据正确格式。
以下是验证器 −
存在 − 确保名称字段没有空值。
长度 − 限制字段的长度。它有两个参数 - min 和 max - 定义最小和最大长度。
格式 − 确保字段值符合给定的表达式。在下面的例子中,它不允许我们添加除数字之外的任何值。
包含 − 确保仅列表中定义的值。在下面的例子中,它只允许 M 和 F 作为值。
排除 −确保我们不允许列表数组中定义的值。在下面的例子中,它不允许将零作为年龄。
语法
validations: [ { type: validation type, field: on which the validation has to applied } ] validations: [ { type: 'presence', field: 'name' }, { type: 'length', field: 'name', min: 5 }, { type: 'format', field: 'age', matcher: /\d+/ }, { type: 'inclusion', field: 'gender', list: ['male', 'female'] }, { type: 'exclusion', field: 'name', list: ['admin'] } ], // 现在让我们尝试创建一个新用户,其中包含尽可能多的验证错误 var newUser = Ext.create('User', { name: 'admin', age: 'twenty-nine', gender: 'not a valid gender' }); // 对刚刚创建的新用户运行一些验证 var errors = newUser.validate(); console.log('Is User valid?', errors.isValid()); // 返回"false",因为存在验证错误 console.log('All Errors:', errors.items); // 返回在此模型实例上发现的所有错误的数组 console.log('Age Errors:', errors.getByField('age')); // 返回年龄字段的错误