سؤال

I have the following function:

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

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

    return unreadCount;
}, viewModel);

When I use this in KnockoutJS, I can't do a simple if (viewModel.unreadCount()==0), like this:

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

It turns out because when I run:

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

I get "function".

Any ideas why that is and how I can get it to return an INT so I can do an if statement?

هل كانت مفيدة؟

المحلول

Since ko.dependentObservable() is returning a function, as BoltClock pointed out, you should be able to call the function it returns by using this somewhat odd-looking syntax:

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

This will then perform function application on the function that is returned, rather than just the unreadCount member of viewModel.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top