EmberJS - Classi e istanze
La classe è un modello o una stampa blu, che ha una raccolta di variabili e funzioni, dove le istanze sono correlate all'oggetto di quella classe. La creazione e l'estensione della classe Ember su Ember.Object è la proprietà principale del modello a oggetti Ember.
Definizione di classi
Puoi creare una nuova classe Ember utilizzando il metodo extent () di Ember.Object -
const Demo = Ember.Object.extend ({
//code here
});
Il codice precedente crea una nuova classe Ember chiamata "Demo" che eredita le proprietà dagli inizializzatori, dalle proprietà calcolate, ecc. Dopo aver creato la classe, è necessario crearne un'istanza utilizzando il metodo create () come mostrato di seguito -
const state = Demo.create();
Utilizzando lo "stato" dell'istanza precedente, accedere alle proprietà utilizzando i metodi set e get accessor.
console.log(state.get('stateOn'));
È possibile modificare la proprietà "stateon" utilizzando il metodo set come mostrato di seguito -
state.set('stateOn', true);
Inizializzazione dell'istanza
È possibile inizializzare la nuova istanza invocando il metodo init () . Quando si dichiarano oggetti nella classe, è necessario inizializzare ogni istanza con il metodo init () .
Esempio
L'esempio seguente utilizza le proprietà sopra menzionate e visualizza un messaggio di avviso quando un oggetto Ember viene inizializzato -
import Ember from 'ember'; //import ember module
export default function() {
//new ember object
const Demo = Ember.Object.extend ({
init() {
alert('The default property of stateOn is : ' + this.get('stateOn'));
},
stateOn: false
});
const state = Demo.create(); //new instance from object with create() method
state.set('stateOn', true);
console.log(state.get('stateOn'));
}
Ora apri il file app.js e aggiungi la seguente riga sopra il file:
import classinstance from './classinstance';
Dove, classinstance è un nome del file specificato come "classinstance.js" e creato nella cartella "app". Ora, chiama la "istanza di classe" ereditata in fondo, prima dell'esportazione. Questo esegue la funzione classinstance che viene creata nel file classinstance.js -
classinstance();
Produzione
Esegui il server ember e riceverai il seguente output: