首页 > 代码库 > ExtJs4学习(六)MVC中的Model
ExtJs4学习(六)MVC中的Model
Model定义的两种方式
第一种
Ext.define("User",{ extend:"Ext.data.Model", fields:[{ name:'username', type:'string' },{ name:'password', type:'string' }] });
另外一种
Ext.regModel("User",{ fields:[{ name:'username', type:'auto' },{ name:'password', type:'auto' }] });
怎样实例化?
首先我们尝试最主要的方式 new
var user = new User({username:'somnus',password:'123456'}); console.info(user.get('password'));//123456然后用create方式
var user = Ext.create('User'{username:'somnus',password:'123456'}); console.info(user.get('password'));//123456
extjs4还给model单独提供了一种对象创建方式
var user = Ext.ModelManager.create({username:'dream5',password:'123456'},"User");
怎样远程载入数据到model
Ext.regModel('User', { fields : [ {name : 'name',type : 'string'}, {name : 'id',type : 'int'} ], proxy : { type : 'ajax', url : 'userServer.jsp' } }); var user = Ext.ModelManager.getModel('User'); user.load(1,{ success:function(rec){ console.log(rec.get('username')); } });
怎样校验model中的数据
Ext.define("User",{ extend:"Ext.data.Model", fields:[{ name:'username', type:'string' },{ name:'password', type:'string' }], validations:[{ type:'length',field:'username',min:2,max:10 },{ type:'number',field:'password',min:6,max:20 }] }); var user = Ext.create('User'{username:'somnus',password:'123456'}); var errors = user.validate();这里不得不提下我在密码那里新增了一个长度验证,那怎样自己定义呢?且看
//自己定义数值范围验证 Ext.apply(Ext.data.validations,{ number : function(config, value){ if (value =http://www.mamicode.com/== undefined){>Model之间是怎样关联的
我们在hibernate中已经认识到,对象之间是能够关联的,extjs在这里也实现了
Ext.regModel('User', { fields : ['name','id'], hasMany : { model : 'Product', name : 'getProducts', autoLoad : false }, proxy : { type : 'ajax', url : 'userServer.jsp' } }); Ext.regModel('Product', { fields : ['id','title','user_id'], proxy : { type : 'ajax', url : 'ProductServer.jsp', reader : { type : 'json', root : 'products' } } }); var user = Ext.ModelManager.getModel('User'); // 读取id为1的User实例 user.load(1, { success : function(rec) { // 获取user_id为1的产品Store var products = rec.getProducts(); // 载入user_id为1的产品数据 products.load({ callback : function(records, operation, success) { Ext.each(records,function(record){ console.info(record.get('title')); }) } }); } });
Extjs4还提供了一种配置方式Ext.define('User', { extend: 'Ext.data.Model', fields: ['id'], associations: [ {type: 'hasMany', model: 'Product', name: 'getProducts'} ] });
上面我给的样例是一对多,一对一肯定也是存在的,翻看apihasOne
belongsTo
ExtJs4学习(六)MVC中的Model
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。