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: