ExtJs4 之数据模型
2015-11-09 00:00
603 查看
ExtJs的数据模型是应用系统读取和保存数据的重要途径,ExtJs4中对其进行了大幅度的提升和改善,添加了新的Ext.data.Model实体模型类(原3.x和2.x的Ext.data.Record),通过实体模型类可以在客户端执行大部分对数据的操作,它提供了在模型层次的数据校验并新增了关系API将不同的模型关联起来,除此之外,代理Proxy也可以直接作用于Model模型类,这意味我们不依赖Store就可以进行数据的存取操作,新增的localStorage代理可以通过一句代码完成数据在客户端的保存和读取操作,新的Reader读取器甚至可以完成数据的嵌套读取。
ExtJs 4 中数据包总共包含了40多个类,其中有3个类比其他类有更重要的地位,他们分别是:Model(数据实体模型)、Store(数据集)、和Proxy(数据代理)
Ext.data.Model数据实体模型是真实世界中实体对象在应用系统中的反映,它包含字段集和处理数据的函数,它的前身是3.x以及以前版本中的Ext.data.Record类,与Record不同的是Model在功能上进行了大幅度的增强,已经成为ExtJs数据包的核心。
Model数据实体模型类有4个重要组成部分,分别是:
fields:字段定义
proxy:数据代理
associations:模型关联
validatons:数据校验
Model类的主要配置项和主要方法如下:
表1-1 Ext.data.Model主要配置项
表1-2 Ext.data.Model主要方法
表1-3 Ext.data.Field主要配置项
表1-4 Ext.data.validations 主要配方法
ExtJs 4 中数据包总共包含了40多个类,其中有3个类比其他类有更重要的地位,他们分别是:Model(数据实体模型)、Store(数据集)、和Proxy(数据代理)
Ext.data.Model数据实体模型是真实世界中实体对象在应用系统中的反映,它包含字段集和处理数据的函数,它的前身是3.x以及以前版本中的Ext.data.Record类,与Record不同的是Model在功能上进行了大幅度的增强,已经成为ExtJs数据包的核心。
Model数据实体模型类有4个重要组成部分,分别是:
fields:字段定义
proxy:数据代理
associations:模型关联
validatons:数据校验
Model类的主要配置项和主要方法如下:
表1-1 Ext.data.Model主要配置项
配置项 | 参数类型 | 说明 |
defaultProxyType | String | 配置默认的代理类型,默认为‘ajax’ |
dirty | Boolean | 只读标识,数据修改过则为true,否则为false |
editing | Boolean | 只读标识,数据正在编辑则为true,否则为false |
fields | Array | 字段定义数组 |
modified | Object | 所有被修改数据组成的键值对对象 |
phantom | Boolean | 数据未持久化则为true,否则为false |
store | Ext.data.Store | 通过belongs进行关联的数据集 |
方法名 | 说明 |
Ext.data.Model(Object data,Number id):Void | 实体对象的构造函数 data:包含模型字段和关联的对象 id:模型唯一的id |
beginEdit:Void | 开始编辑,当初与编辑模式时将没有事件被传播到它的数据集Store对象中,当一个编辑开始接下来就必须是endEdit或者cancelEdit |
cancelEdit:Void | 取消当前编辑操作对记录所有的修改 |
commit([Boolean silent]):Void | 通常被拥有记录的Store进行调用,提交从记录被创建以来或最近一个提交以来的所有更改 |
copy([String Id]):Record | 复制记录 id:新记录的id |
destory(Object options):Model | 销毁数据实体 options:代理配置对象 |
endEdit(Boolean silent):Void | 结束编辑,如果数据被更改了则拥有记录的Store将得到通知。 silent:如果为true则不通知Store数据变换,默认为false |
get(String fieldName):Mixed | 得到指定名字的字段值 |
getAssociatedData:Object | 递归的返回所有的关联数据 |
得到自记录被创建或最近一次提交更新后发生更改字段的hash集合 | |
getId:Number | 获取分配给数据模型实例的唯一id |
getProxy:Ext.data.Proxy | 获取配置在模型对象上的代理对象 |
id(Ext.data.Model rec):String | 以序列的方式生成id,没有指定id的记录被创建时,该方法将被调用. rec:未被持久化的对象 |
isModified(String fieldName): Boolean | 得到自记录被创建或最近一次提交更新后指定字段名的数据是否被修改过,是为true,否则为false |
isValid:Boolean | 数据验证通过则返回true |
join(Store store):Void | 将模型对象加入到Store中 |
load(Number id,Object config):void | 根据id异步夹在数据 config:包含success,failure和callback回调函数的对象 |
reject([Boolean silent]):void | 通常被拥有记录的Store进行调用,拒绝从记录被创建以来或最近一个提交以来的所有更改,字段将被还原到他们的初始值. silent:true则不通知Store数据变换 |
save(Object options):Model | 通过代理保存对象数据 |
set(String|Object fieldName,Mixed value):void | 设置模型中特定字段的值 |
setDirty:void | 设置记录为脏数据 |
setId(Number id):void | 设置模型对象的id字段 |
setProxy(String|Object|Proxy Proxy ):void | 设置模型的数据代理 |
validate:Ext.data.Errors | 验证当前记录值,返回包含错误信息的对象 |
配置项 | 参数类型 | 说明 |
convert | Function | 一个用于转换数据读取器Reader读取到的数据转换函数,转换后的数据将保存在记录Model对象中,一下参数被传入: v:Mixed 字段原始值 rec:Model模型对象 |
dateFormat | String | 日期格式字符串 |
defaultValue | Mixed | 字段值为空时的默认值,默认为"" |
mapping | String | 用于Reader从数据对象中获取值的路径说明,如果使用Ext.data.jsonReader则在字符串中需要包含一个从根开始的Js表达式,如果使用的是XmlReader则在字符串中就是一个可以引用到元素的Ext.DomQuery路径.如果映射表达式mapping与字段名相同,则该属性可以忽略 |
name | String | 模型中引用字段的名称 |
persist | Boolean | 设置该字段是否进行持久化,false则该字段被排除在Ext.data.Model.modified和Ext.data.writer.Writer方法之外,当字段只保存客户端临时数据时非常有用,默认为true. |
sortDir | String | 初始时的排序方式,包括升序和降序,ASC或DESC,默认为ASC |
sortType | Function | 将字段值转换为可排序值的函数,SortType中预定义了一些排序函数 |
type | Mixed | 字段的数据类型包括: Auto(默认值,不进行转换),String,int,float,boolean,date |
useNull | Boolean | 设置当把原始数据转换为数字类型时,如果解析失败useNull设置为true则返回null值,否则返回0 |
方法名 | 说明 |
exclusion(Object config,String value):boolean | 排除验证,如果给定值不在集合中则返回true config:需要通过list配置项指定数据集合 value:需要校验的数据 |
format(Object config,String value):Boolean | 排除验证,如果给定值不在集合中则返回true config:需要通过matcher配置项指定正则表达式 value:需要校验的数据 |
inclusion(Object config,String value):Boolean | 包含验证.如果给定值在集合中则返回true config:需要通过list配置项指定数据集合 value:需要校验的数据 |
length(Object config,String value):Boolean | 如果给定值的字符串长度在最大值和最小值范围内则返回true config:需要通过max和min配置项指定最大值和最小值 value:需要校验的数据 |
presence(Object config,Mixedvalue):Boolean | 校验给定值是否有效,在函数内部通过给指定值转化为Boolean值进行返回 |
相关文章推荐
- ExtJs 常用代码片段(7.30更新)
- EXTJS自定义验证日期选择范围
- EXTJS4之常用工具类与函数--Ext.core.Element
- 对象
- jsp自定义标签
- JS操作JSON总结
- jsp的九大内置对象
- Js 作用域链(是指AO链)
- ExtJS5获取当前光标位置插入文本内容
- JS 之简单计算器
- JSP 基础(二)
- JSP自定义标签(转)
- Javascript 中的 && 和 || 使用小结
- 测试时出现下载框的各种Debug
- 【JavaScript知识点六】javascript 函数基础
- JavaScript 标准参考教程--基本语法 学习笔记
- [LeetCode][JavaScript]Unique Binary Search Trees II
- [LeetCode][JavaScript]Unique Binary Search Trees
- JSP,js,servlet之间传值时中文乱码的处理
- JavaScript 的同源策略