Почему моя функция возвращает «функцию», а не целое число?

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

  •  14-10-2019
  •  | 
  •  

Вопрос

У меня есть следующая функция:

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

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

    return unreadCount;
}, viewModel);

Когда я использую это в nockoutjs, я не могу сделать просто if (viewModel.unreadCount()==0), как это:

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

Оказывается, потому что когда я бегаю:

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

Я получаю "функцию".

Любые идеи, почему это и как я могу заставить его вернуть Int, чтобы я мог сделать оператор IF?

Это было полезно?

Решение

С ko.dependentObservable() возвращает функцию, как Болт отметил, что вы сможете вызвать функцию, которую она возвращает, используя этот несколько нечетно выглядящий синтаксис:

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

Затем это выполнит функциональное приложение для возвращаемой функции, а не только unreadCount член viewModel.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top