我有以下功能:
viewModel.unreadCount = ko.dependentObservable(function() {
var unreadCount = 0;
for (var i = 0; i x< xxxxxxxxxxxx.length; i++) {
if (xxxxxx == false) {
unreadCount++;
}
}
return unreadCount;
}, viewModel);
当我在KnockoutJS中使用它时,我不能做一个简单的if (viewModel.unreadCount()==0)
,如下所示:
<div data-bind="visible: viewModel.unreadCount()==0">
事实证明,因为当我跑步时:
<p>${ (typeof viewModel.unreadCount) }</p>
我得到“功能”。
任何想法为什么会这样,以及如何让它返回INT以便我可以做一个if语句?
答案 0 :(得分:2)
由于ko.dependentObservable()
正在返回一个函数,正如BoltClock指出的那样,你应该能够通过使用这种有点奇怪的语法来调用它返回的函数:
<div data-bind="visible: (viewModel.unreadCount)()==0">
然后,这将对返回的函数执行函数应用程序,而不仅仅是unreadCount
的{{1}}成员。