Sencha Touch - Modello
Il modello è fondamentalmente una raccolta di dati o campi, che individualmente viene utilizzato per memorizzare un tipo specifico di informazioni.
Poiché Sencha segue l'architettura basata sulla base, le classi possono essere personalizzate per eseguire attività specifiche.
Ext.data.Model è la classe base che dobbiamo estendere durante la definizione di qualsiasi modello.
Definizione di un modello
Ext.define('Student', {
extend: 'Ext.data.Model', config: {
fields: [
{ name: 'id', type: 'int' },
{ name: 'name', type: 'string' }
]
}
});
Campi
I campi servono per memorizzare una parte di informazioni e la cui raccolta è chiamata modello.
Principalmente definiamo campi nel modello che sono dei seguenti tipi:
- Integer
- String
- Boolean
- Float
Syntax
{ name: 'id', type: 'int' },
{ name: 'name', type: 'string' },
{ name: 'marks', type: Float },
{ name: 'newStudent', type: 'boolean' }
Validatori
In Sencha Touch, il modello supporta una serie di convalide per mantenere i dati in un formato corretto.
Di seguito sono riportati i validatori:
Presence - Assicura che non sia un valore vuoto per il campo del nome.
Length- Limita la lunghezza del campo. Ha due parametri - min e max - che definiscono la lunghezza minima e massima.
Format- Assicura che il valore del campo corrisponda all'espressione data. Nell'esempio seguente, non ci consentirà di aggiungere alcun valore oltre a un numero.
Inclusion- Assicura solo i valori che sono definiti nell'elenco. Nell'esempio seguente, consente solo M e F per il valore.
Exclusion- Assicura che non consentiamo i valori definiti nella matrice della lista. Nell'esempio seguente, non consente zero come età.
Syntax
validations: [
{ type: validation type, field: on which the validation has to applied }
]
validations: [
{ type: 'presence', field: 'name' },
{ type: 'length', field: 'name', min: 5 },
{ type: 'format', field: 'age', matcher: /\d+/ },
{ type: 'inclusion', field: 'gender', list: ['male', 'female'] },
{ type: 'exclusion', field: 'name', list: ['admin'] }
],
// now lets try to create a new user with as many validation errors as we can
var newUser = Ext.create('User', {
name: 'admin', age: 'twenty-nine', gender: 'not a valid gender'
});
// run some validation on the new user we just created
var errors = newUser.validate();
console.log('Is User valid?', errors.isValid());
// returns 'false' as there were validation errors
console.log('All Errors:', errors.items);
// returns the array of all errors found on this model instance
console.log('Age Errors:', errors.getByField('age')); // returns the errors for the age field