Pourquoi ma fonction de retour « fonction » et non un résultat entier?
-
14-10-2019 - |
Question
J'ai la fonction suivante:
viewModel.unreadCount = ko.dependentObservable(function() {
var unreadCount = 0;
for (var i = 0; i x< xxxxxxxxxxxx.length; i++) {
if (xxxxxx == false) {
unreadCount++;
}
}
return unreadCount;
}, viewModel);
Quand j'utiliser dans KnockoutJS, je ne peux pas faire un if (viewModel.unreadCount()==0)
simple, comme ceci:
<div data-bind="visible: viewModel.unreadCount()==0">
Il se parce que quand je lance:
<p>${ (typeof viewModel.unreadCount) }</p>
get "fonction".
Toutes les idées pourquoi et comment je peux l'obtenir pour retourner un INT pour que je puisse faire une instruction if?
La solution
Depuis ko.dependentObservable()
retourne une fonction, comme BoltClock indiqué, vous devriez être en mesure d'appeler la fonction retourne par en utilisant cette syntaxe un peu bizarre:
<div data-bind="visible: (viewModel.unreadCount)()==0">
exécutera alors l'application de la fonction sur la fonction qui est renvoyée, plutôt que l'élément unreadCount
de viewModel
.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow