ExtJS使用model來表示現實世界中的模型 有點相似於數據庫的table Java的class
php
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
ajax
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增長驗證方法json
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代理獲值app
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) { } });
phpthis
$arr = array( "name" => "sads", "age" => 12 ); $data = json_encode($arr); echo $data;