Salut tout le monde,
Je suis actuellement confronté à un problème où je dois pouvoir forcer un observable à déclencher son gestionnaire de mise à jour, que la nouvelle valeur soit différente de _latestValue ou non. C'est parce que mon observable est appelé comme un rappel plutôt que déclenché directement par un événement de changement sur l'élément lié (c'est un contrôle de saisie semi-automatique personnalisé).
La solution idéale serait un drapeau "force" sur l'observable :
myObservable("nouvelle valeur", /* force = */ true)
Y a-t-un autre moyen de faire ça?
Bravo, André.
les observables ont une fonction valueHasMutated
que vous pouvez appeler à cette fin.
Il vous suffit de faire :
myObservable.valueHasMutated()
Vous pouvez également faire en sorte que l'observable notifie toujours lorsqu'il est mis à jour :
myObservable = ko.observable().extend({notify: 'always'});
myObservable("new value"); // will notify even if the value is already "new value"
C'est probablement une bonne idée d'avoir ces deux méthodes dans la documentation.
valueHasMutated fonctionne comme un charme ! Merci les gars :-)
Commentaire le plus utile
les observables ont une fonction
valueHasMutated
que vous pouvez appeler à cette fin.Il vous suffit de faire :
myObservable.valueHasMutated()