Using observerLocator
Tap into Aurelia's observerLocator to watch low-level property changes manually.
Last updated
Was this helpful?
Was this helpful?
// getting the observer for property 'value'
const observer = observerLocator.getObserver(obj, 'value')const subscriber = {
handleChange(newValue) {
console.log('new value of object is:', newValue)
}
}
observer.subscribe(subscriber)
// and to stop subscribing
observer.unsubscribe(subscriber)const obj = { firstName: '', lastName: '' }
function notifyFullnameChanged() {
console.alert(`${obj.firstName} ${obj.lastName}`);
}
const observer1 = observerLocator.getObserver(obj, 'firstName').subscribe({ handleChange: notifyFullnameChanged })
const observer2 = observerLocator.getObserver(obj, 'lastName').subscribe({ handleChange: notifyFullnameChanged })const obj = { firstName: '', lastName: '', get fullName() { return `${this.firstName} ${this.lastName}` } }
const observer = observerLocator.getObserver(obj, 'fullName').subscribe({ handleChange: fullname => alert(fullname) });const obj = { firstName: '', lastName: '' }
const observer = observerLocator.getObserver(obj, obj => `${obj.firstName} ${obj.lastName}`).subscribe({
handleChange: fullname => alert(fullname)
});const obj = { firstName: '', lastName: '' };
const observer = observerLocator.getExpressionObserver(obj, '`${firstName} ${lastName}`').subscribe({
handleChange(newFullname) {
console.log(`New fullname is:`, newFullname);
}
});