5

コンボボックス(選択)要素のさまざまな属性にいくつかの選択肢を提供することにより、アイテムのリストをフィルタリングする小さなアプリがあります。単一のコンボボックス要素の選択と選択解除はすべて正常に機能しますが、すべてのコンボボックス要素を null にリセットする「フィルター設定のリセット」に必要なボタンを導入したため、パフォーマンスが低下します。コンボボックスを変更する単一のステートメントごとに、完全なリストの更新がトリガーされているようです。

ノックアウトにオブザーバブルの更新を停止し、すべてのコンボボックス要素をnullにリセットしてから、ノックアウトに更新を再開するか、最初に自分で更新をトリガーするように指示するにはどうすればよいですか。

何か案は?

ありがとうアンドレアス

4

2 に答える 2

5

すべてのコンボをリセットしている間、リストを管理する計算されたプロパティ (またはプロパティ) を一時停止できます。

http://www.knockmeout.net/2011/04/pausing-notifications-in-knockoutjs.htmlを参照してください。

于 2012-04-28T22:39:34.310 に答える
4

恥知らずにニコのコメントを拡張すると、スロットルエクステンダーを使用する必要があります。

.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 に答える