我有这个小 ViewModel:
function BooksViewModel() {
var self = this;
self.books = ko.observableArray(library);
self.findByLanguage = function(lang) {
self.books = ko.computed(function() {
return ko.utils.arrayFilter(library, function(book) {
return book.language() === lang;
});
});
};
}
findByLanguage 方法按语言过滤数组。在视图中,我尝试像这样实现:
<ul class="dropdown-menu">
<li><a tabindex="-1" href="#" data-bind="click: findByLanguage('C')">C</a></li>
<li><a tabindex="-1" href="#" data-bind="click: findByLanguage('Cpp')">C++</a></li>
</ul>
我试图通过从那里调用语言参数来重用该函数。但是,如果我在 data-bind 上传递一个带括号的函数,它会自动被调用。
我怎样才能做到这一点?