Modello a oggetti che dichiara l'osservatore

È possibile definire gli osservatori in linea utilizzando il metodo Ember.observer senza le estensioni del prototipo.

Di seguito è riportata la sintassi per definire gli osservatori in linea utilizzando il metodo Ember.observer .

App.ClassName = Ember.Object.extend ({
   ComputedPropertyName: Ember.observer('ComputedPropertyNames', function() {
      //do the stuff
   })
});

Al di fuori delle definizioni di classe

Aggiungere gli osservatori a un oggetto al di fuori di una definizione di classe utilizzando un metodo addObserver () .

La sintassi può essere specificata come mostrato di seguito -

ClassName.addObserver('ComputedPropertyNames', function() {
   //do the stuff
});

Esempio

L'esempio seguente specifica gli osservatori in linea utilizzando il metodo Ember.observer -

import Ember from 'ember';

export default function() {
   var Person = Ember.Object.extend ({
      Name: null,
      
      //Defining the Details1 and Details2 computed property function
      Details1: Ember.computed('Name', function() {
         
         //get the Name value
         var Name = this.get('Name');
         //return the Name value
         return Name;
      }),
      Details2: Ember.observer('Details1', function() {})
   });
   
   //initializing the Person details
   var person = Person.create ({
      Name: 'Steve',
   });
   
   person.set('Name', 'Jhon');
   document.write('Name is Changed To: ' + person.get('Details1'));
}

Ora apri il file app.js e aggiungi la seguente riga all'inizio del file:

import outsideclassdefinitions from './outsideclassdefinitions';

Dove, outsideclassdefinitions è un nome del file specificato come "outsideclassdefinitions.js" e creato nella cartella "app".

Quindi chiama le "definizioni di classe esterna" ereditate in fondo, prima dell'esportazione. Esegue la funzione outsideclassdefinitions creata nel file outsideclassdefinitions.js -

outsideclassdefinitions();

Produzione

Esegui il server ember e riceverai il seguente output: