ExtJS4.2学习 php版(五)

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;


你可能感兴趣的:(Model,ExtJs)