By Alvin Alexander. Last updated: June 6, 2016
Here are some Sencha ExtJS Model examples, from the official Sencha docs.
Define a User:
Ext.define('User', { extend: 'Ext.data.Model', fields: [ {name: 'name', type: 'string'}, {name: 'age', type: 'int', convert: null}, {name: 'phone', type: 'string'}, {name: 'alive', type: 'boolean', defaultValue: true, convert: null} ], changeName: function() { var oldName = this.get('name'), newName = oldName + " The Barbarian"; this.set('name', newName); } });
Create a User:
var user = Ext.create('User', { id : 'ABCD12345', name : 'Conan', age : 24, phone: '555-555-5555' }); user.changeName(); user.get('name'); //returns "Conan The Barbarian"
Validations:
Ext.define('User', { extend: 'Ext.data.Model', fields: [ {name: 'name', type: 'string'}, {name: 'age', type: 'int'}, {name: 'phone', type: 'string'}, {name: 'gender', type: 'string'}, {name: 'username', type: 'string'}, {name: 'alive', type: 'boolean', defaultValue: true} ], validations: [ {type: 'presence', field: 'age'}, {type: 'length', field: 'name', min: 2}, {type: 'inclusion', field: 'gender', list: ['Male', 'Female']}, {type: 'exclusion', field: 'username', list: ['Admin', 'Operator']}, {type: 'format', field: 'username', matcher: /([a-z]+)[0-9]{2,3}/} ] });
Validations:
var instance = Ext.create('User', { name: 'Ed', gender: 'Male', username: 'edspencer' }); var errors = instance.validate();
Define a proxy:
Ext.define('User', { extend: 'Ext.data.Model', fields: ['id', 'name', 'email'], proxy: { type: 'rest', url : '/users' } });
Use the proxy:
var user = Ext.create('User', {name: 'Ed Spencer', email: 'ed@sencha.com'}); user.save(); //POST /users
Loading data via the model proxy:
//get a reference to the User model class var User = Ext.ModelManager.getModel('User'); //Uses the configured RestProxy to make a GET request to /users/123 User.load(123, { success: function(user) { console.log(user.getId()); //logs 123 } });