Perché la mia funzione che restituisce “funzione” e non un risultato intero?
-
14-10-2019 - |
Domanda
Ho la seguente funzione:
viewModel.unreadCount = ko.dependentObservable(function() {
var unreadCount = 0;
for (var i = 0; i x< xxxxxxxxxxxx.length; i++) {
if (xxxxxx == false) {
unreadCount++;
}
}
return unreadCount;
}, viewModel);
Quando uso questo KnockoutJS, non posso fare un semplice if (viewModel.unreadCount()==0)
, in questo modo:
<div data-bind="visible: viewModel.unreadCount()==0">
Si scopre perché quando corro:
<p>${ (typeof viewModel.unreadCount) }</p>
ottengo "funzione".
Tutte le idee perché questo è e come posso farlo tornare un INT in modo da poter fare un'istruzione if?
Soluzione
Dal ko.dependentObservable()
sta tornando una funzione, come BoltClock sottolineato, si dovrebbe essere in grado di chiamare la funzione restituisce da utilizzando questa sintassi un po 'strano aspetto:
<div data-bind="visible: (viewModel.unreadCount)()==0">
Questo sarà quindi eseguire l'applicazione di funzioni sulla funzione che viene restituito, piuttosto che solo il membro unreadCount
di viewModel
.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow