5

我有一个小应用程序通过为组合框(选择)元素中的不同属性提供多种选择来过滤项目列表。一切工作正常选择和取消选择单个组合框元素,但由于我向“重置过滤器设置”引入了一个必需的按钮,它将所有组合框元素重置为空,我的性能很差。似乎每条修改组合框的语句都在触发完整列表的刷新。

我如何告诉敲除停止更新可观察对象,将所有组合框元素重置为 null,然后告诉敲除恢复更新或最初自己触发更新。

有任何想法吗?

谢谢安德烈亚斯

4

2 回答 2

5

您可以在重置所有组合时暂停管理列表的计算属性(或属性)。

http://www.knockmeout.net/2011/04/pausing-notifications-in-knockoutjs.html

于 2012-04-28T22:39:34.310 回答
4

无耻地扩展 Niko 的评论,您应该使用油门扩展器

添加.extend({ throttle: 10 })到我的计算声明中为我解决了这个问题:

// get only selected markets
self.SelectedMarkets = ko.computed(function() {
    return ko.utils.arrayFilter(self.Markets(), function(market) {
        return market.IsSelected() == 1; });
}).extend({ throttle: 10 });
于 2012-04-29T05:03:43.923 回答