Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript KnockoutJs-如何在按下键后限制绑定_Javascript_Jquery_Html_Mvvm_Knockout.js - Fatal编程技术网

Javascript KnockoutJs-如何在按下键后限制绑定

Javascript KnockoutJs-如何在按下键后限制绑定,javascript,jquery,html,mvvm,knockout.js,Javascript,Jquery,Html,Mvvm,Knockout.js,我得到了我的过滤功能的工作 <input data-bind="value: filterByName, valueUpdate:'afterkeydown'" /> <div data-bind="foreach: filteredRecords"/> </body> 现在我的问题是把.extend({throttle:500})放在哪里 我想我不能把它放在filteredRecords上,因为它也会限制页面加载 还有其他想法吗?如果我明白你的意思,那么

我得到了我的过滤功能的工作

<input data-bind="value: filterByName, valueUpdate:'afterkeydown'" />
 <div data-bind="foreach: filteredRecords"/>
</body>
现在我的问题是把
.extend({throttle:500})放在哪里
我想我不能把它放在
filteredRecords
上,因为它也会限制
页面加载


还有其他想法吗?

如果我明白你的意思,那么你可能想限制
过滤器的语法名。这将防止
filteredRecords
收到通知,直到
filterByName
停止更改x毫秒

如果我了解您的目的,那么您可能想限制
filterByName
。这将阻止
filteredRecords
收到通知,直到
filterByName
停止更改x毫秒。是的!这就是我需要做的!如果你提供答案,我会记下来。
 self.filteredRecords= ko.computed(function () {
        return getRecordByStatus(1);
    });

 self.filterByName= ko.observable("");


 var getRecordByStatus = function (status) {

            var periodRecord, filtered = [];

            if (self.timesheetApprovalResponse().periods) {
                // period filtering
                if (self.selectedPeriod()) {
                    periodRecord = _.find(self.timesheetApprovalResponse().periods, function(p) {
                        return p.fromDate === self.selectedPeriod().key;
                    });

                    if (periodRecord) {
                        filtered = _.where(periodRecord.timesheets,
                            function(t) {
                                return t.status === status;
                            });
                    }
                }
            }

            if (self.filterByName()) {
                filtered = _.where(filtered,
                    function (t) {


                        console.log(t.name.toLowerCase() + "-" + self.filterByName().toLowerCase());
                        return t.name.toLowerCase().indexOf(self.filterByName().toLowerCase()) > -1;
                    });
            }


            return filtered;
        };