Perché la mia funzione che restituisce “funzione” e non un risultato intero?

StackOverflow https://stackoverflow.com/questions/4572446

  •  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?

È stato utile?

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
scroll top