Почему моя функция возвращает «функцию», а не целое число?
-
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
.
Не связан с StackOverflow