Javascript 能够使用knockout js动态隐藏/显示页面上的元素

Javascript 能够使用knockout js动态隐藏/显示页面上的元素,javascript,jquery,html,knockout.js,Javascript,Jquery,Html,Knockout.js,编辑:我根据反馈更新了我的绑定 我的web应用程序上有一个子页面,我需要能够根据用户选择的过滤选项动态隐藏/显示该页面上的元素。为此,我编写了如下自定义绑定: ko.bindingHandlers.customVisible = { update: function(element, valueAccessor){ var params = ko.utils.unwrapObservable(valueAccessor()); var sho

编辑:我根据反馈更新了我的绑定

我的web应用程序上有一个子页面,我需要能够根据用户选择的过滤选项动态隐藏/显示该页面上的元素。为此,我编写了如下自定义绑定:

ko.bindingHandlers.customVisible = {
   update: function(element, valueAccessor){
            var params = ko.utils.unwrapObservable(valueAccessor());
            var show = params.method(params.data, params.searchText());
            ko.bindingHandlers.visible.update(element, function() { return show; });
        }
    };
它的html标记如下所示:

<div class="form-group" data-bind="foreach: objects">
    <div class="col-md-9 col-sm-7 col-xs-12" data-bind="customVisible: {data: $data, method: $parent.filterSyncedObjects, searchText: $parent.searchText}">
    </div>
</div>

以下是输入框的标记:

<input  type="search" data-bind="value: searchText, valueUpdate: 'keyup'" placeholder="Enter A name to search">

“filterSearchObjects”是根据搜索是否匹配而返回true或false的方法,“searchText”是包含用户输入文本的可观察对象。我的问题是:

“searchText”的值更改时,为什么没有启动customVisible.update函数


任何帮助都将不胜感激。

searchText
a
ko.可观察的
?如果是,则不应是
var show=params.method(params.data,params.searchText())?谢谢。但它仍然没有回答我的问题:“为什么没有启动更新?”编辑:谢谢你,huocp。就这样!