Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

130
Views
Suscripción cambio de propiedad con Aurelia

Tengo una propiedad en mi modelo de vista que quiero escuchar y desencadenar eventos en función de su valor, así:

 class viewModel { constructor() { this.value = '0'; let val = 2; subscribe(this.value, callbackForValue); subscribe(val, callbackForVal); } }

¿Es esta una característica de Aurelia? Si es así, ¿cómo haría para configurar dicha suscripción?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

En algunos complementos, he estado usando DI para obtener la instancia de ObserverLocator del contenedor:

 import {inject} from 'aurelia-dependency-injection'; // or from 'aurelia-framework' import {ObserverLocator} from 'aurelia-binding'; // or from 'aurelia-framework' @inject(ObserverLocator) export class Foo { constructor(observerLocator) { this.observerLocator = observerLocator; } ... }

A continuación, puede hacer algo como esto:

 var subscription = this.observerLocator .getObserver(myObj, 'myPropertyName') .subscribe(myCallback);

Cuando esté listo para deshacerse de la suscripción, invóquela:

 subscription();

Creo que todo esto está sujeto a cambios, pero es algo que podrías usar ahora mismo si lo necesitas.

Más información aquí

Actualización de octubre de 2015

ObserverLocator es la API "bare metal" interna de Aurelia. Ahora hay una API pública para el motor de enlace que podría usarse:

 import {inject} from 'aurelia-dependency-injection'; // or from 'aurelia-framework' import {BindingEngine} from 'aurelia-binding'; // or from 'aurelia-framework' @inject(BindingEngine) export class ViewModel { constructor(bindingEngine) { this.obj = { foo: 'bar' }; // subscribe let subscription = bindingEngine.propertyObserver(this.obj, 'foo') .subscribe((newValue, oldValue) => console.log(newValue)); // unsubscribe subscription.dispose(); } }
over 4 years ago · Santiago Trujillo Report

0

El atributo observable tiene menos sobrecarga que enlazar según I kill nerds .

 import {observable} from "aurelia-framework"; export class Example { @observable public description: string; private descriptionChanged(newValue: string, oldValue: string): void { } }
over 4 years ago · Santiago Trujillo Report

0

escuchar y desencadenar eventos en función de su valor

Un fragmento de código usando TypeScript, con suerte eso le dará una idea:

 import {bindingMode} from "aurelia-binding"; export class Example{ @bindable public description: string; private descriptionChanged(newValue: string, oldValue: string): void { console.log(newValue, oldValue); } }

El nombre del método debe seguir la convención `${propertyName}Changed`


EDITAR: Eso es exactamente lo que Decade Moon sugirió en el comentario anterior: Suscripción de cambio de propiedad con Aurelia

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!