ExtJS4.2学习 php版(五)

本文详细介绍了ExtJS中Model的使用方法,包括创建、验证数据和使用Proxy获取值。通过实例展示了如何定义Model、设置验证规则以及利用Proxy代理进行数据加载。

ExtJS使用model来表示现实世界中的模型 有点类似于数据库的table Java的class 

Ext.define("User", {
				extend : "Ext.data.Model",
				fields : [
					{name : "name", type : "string"},
					{name : "age", type : "int", convert: null}
				],	
				
				changeName : function() {
					var oldName = this.get("name");
							newName = oldName + "ch";
							
					this.set("name", newName);	
				}
		});

ExtJS有三种方法创建model

var arn = Ext.create("User",{
			name : "sads",
			age : 26	
		});
		
                var arn = Ext.ModelManager.create({
			name : "sads",
			age : 26	
		},"User");
		
		var arn = new User({
			name : "sads",
			age : 26	
		});

model里有validations属性来验证数据 

Ext.define("User", {
				extend : "Ext.data.Model",
				fields : [
					{name : "name", type : "string"},
					{name : "age", type : "int", convert: null}
				],	
				
				validations : [
					 {type: "length", field: "name", min: 2, max: 6 }
				],
				
				changeName : function() {
					var oldName = this.get("name");
							newName = oldName + "ch";
							
					this.set("name", newName);	
				}
		});
    		
		var arn = Ext.create("User",{
				name : "sadssads",
				age : 26	
		});
		
		var errors = arn.validate();
		errors.each(function(v){
				console.log(v);
		});

我们可以扩展Ext.data.validations增加验证方法

Ext.apply(Ext.data.validations,{
				age:function(config, value) {
					var min = config.min;
					var max = config.max;
					
					if(min <= value && value <= max) {
							return true;	
					}else{
							return false;	
					}
				},
				ageMessage: "age不正确"
		});

使用proxy代理获值

Ext.define("User", {
				extend : "Ext.data.Model",
				fields : [
					{name : "name", type : "string"},
					{name : "age", type : "int", convert: null}
				],	
				
				proxy : {
					type:"ajax",
					url:"user.php"
				},
				
				validations : [
					 {type: "length", field: "name", min: 2, max: 6 },
					 {type: "age", field : "age", min:10, max:60}
				],
				
				changeName : function() {
					var oldName = this.get("name");
							newName = oldName + "ch";
							
					this.set("name", newName);	
				}
		});
		
		var u = Ext.ModelManager.getModel("User");
		u.load(10, {
		    scope: this,
		    failure: function(record, operation) {
		        //do something if the load failed
		        //record is null
		    },
		    success: function(record, operation) {
		    	console.log(record);
		    },
		    callback: function(record, operation, success) {
		    }
		});

php

     $arr = array(
	     "name" => "sads",
	      "age" => 12
     );

     $data = json_encode($arr);
     echo $data;


转载于:https://my.oschina.net/u/1421356/blog/215562

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值