J'ai un observableArray calculé lié directement à un bouton radio et un événement lié à cette sélection de bouton radio. La sélection du bouton radio ajoute de la valeur au tableau, ainsi que l'événement déclencheurs de sélection où j'utilise la valeur du tableau. Le problème auquel je suis confronté est que la matrice est mise à jour (via la logique calculée) après l'exécution de la fonction d'événement mais je dois vérifier le contenu de la matrice (principalement la longueur) dans la fonction événementielle elle-même. Si j'utilise la fonction telle qu'elle est maintenant, je reçois l'ancienne valeur. Existe-t-il un moyen de forcer le tableau à mettre à jour les valeurs (évaluer la valeur calculée) avant de pouvoir l'utiliser dans la fonction d'événement?Knockout - comment mettre à jour un observableArray calculé avant d'utiliser sa valeur dans une fonction
<input type="radio" data-bind="attr: {name: name}, checked: val, event :{ change: $parent.Changed }" value="No" />
// Knockout code
this.Items = ko.computed(function() {
//Add selected items to ItemsArray
}
this.Changed = function() {
if (self.Items().length > 2) {
//Do sth
}
}
S'il vous plaît un peu de code (peut-être un repro en jsFiddle), sans voir votre code, il est très difficile de dire ce que vous essayez réaliser/demander ici. – nemesv
Voir la duplication possible - vous pouvez appeler 'myObservable.valueHasMutated()' pour informer les abonnés qu'ils doivent être mis à jour. –
@JacobKrall Je n'ai pas valueHasMutated pour observableArrays. Pouvez-vous me montrer la bonne direction? – aaa