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: