Frage

Ich habe die folgende Funktion:

viewModel.unreadCount = ko.dependentObservable(function() {   
    var unreadCount = 0;

    for (var i = 0; i x< xxxxxxxxxxxx.length; i++) {
        if (xxxxxx == false) {
            unreadCount++;
        }
    }

    return unreadCount;
}, viewModel);

Wenn ich dies in KnockoutJs benutze, kann ich kein einfaches machen if (viewModel.unreadCount()==0), so was:

<div data-bind="visible: viewModel.unreadCount()==0">

Es stellt sich heraus, weil ich beim Lauf:

<p>${ (typeof viewModel.unreadCount) }</p>

Ich bekomme "Funktion".

Irgendwelche Ideen, warum das so ist und wie ich es dazu bringen kann, ein int zurückzugeben, damit ich eine If -Erklärung machen kann?

War es hilfreich?

Lösung

Seit ko.dependentObservable() Gibt eine Funktion zurück, als Boltclock Ausgewirkt können Sie in der Lage sein, die Funktion aufzurufen, die sie zurückgibt, indem Sie diese etwas seltsam aussehende Syntax verwenden:

<div data-bind="visible: (viewModel.unreadCount)()==0">

Dies führt dann die Funktionsanwendung in der Funktion aus, die zurückgegeben wird, und nicht nur die Funktion unreadCount Mitglied von viewModel.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top