J'ai une propriété sur mon modèle de vue que je veux écouter et déclencher des événements en fonction de sa valeur, comme ceci:
class viewModel {
constructor() {
this.value = '0';
let val = 2;
subscribe(this.value, callbackForValue);
subscribe(val, callbackForVal);
}
}
Est-ce une caractéristique d'Aurelia? Si c'est le cas, comment pourrais-je configurer un tel abonnement?
L'attribut observable a moins de surcharge pour la liaison selon je tue les nerds .
import {observable} from "aurelia-framework";
export class Example {
@observable
public description: string;
private descriptionChanged(newValue: string, oldValue: string): void {
}
}
écouter et déclencher des événements en fonction de sa valeur
Un extrait de code utilisant TypeScript, j'espère que cela vous donnera une idée:
import {bindingMode} from "aurelia-binding";
export class Example{
@bindable
public description: string;
private descriptionChanged(newValue: string, oldValue: string): void {
console.log(newValue, oldValue);
}
}
Le nom de la méthode doit suivre la convention `${propertyName}Changed`
EDIT: C'est exactement ce que Decade Moon suggéré dans le commentaire ci-dessus: Abonnement au changement de propriété avec Aurelia
Le @observable
le décorateur fonctionne bien pour ce scénario.
Vous pouvez utiliser le BindingEngine
pour regarder une collection ou contrôler quand vous abonner/vous désabonner