2012-04-28 13 views
5

के साथ "यूनिट" के रूप में कई परिवर्तनों को कैसे ट्रिगर करें I combobox (select) तत्वों में विभिन्न विशेषताओं के लिए कई विकल्प प्रदान करके आइटम की एक सूची फ़िल्टर करने वाला एक छोटा ऐप है। सबकुछ ठीक से चयन करने और एकल combobox तत्वों को अचयनित करने के लिए काम करता है, लेकिन चूंकि मैंने "फ़िल्टर सेटिंग्स रीसेट करें" के लिए एक आवश्यक बटन पेश किया है जो सभी combobox तत्वों को शून्य करने के लिए रीसेट करता है मुझे खराब प्रदर्शन मिलता है। ऐसा लगता है कि एक एकल कम्बोक्सबॉक्स को संशोधित करने वाला प्रत्येक कथन पूरी सूची का ताज़ा कर रहा है।knockout.js

मैं अवलोकनों को अद्यतन करने के लिए नॉकआउट कैसे कह सकता हूं, सभी combobox तत्वों को शून्य पर रीसेट कर दिया गया है और फिर अद्यतन को फिर से शुरू करने के लिए नॉकआउट बताएं या शुरुआत में खुद को ट्रिगर करें।

कोई विचार?

धन्यवाद एंड्रियास

+4

"थ्रॉटल" एक्सटेंडर पर एक नज़र डालें: http://knockoutjs.com/documentation/throttle-extender.html – Niko

उत्तर

5

आप परिकलित प्रॉपर्टी (या गुण) सूची प्रबंधन करते हुए आप अपने सभी कॉम्बो रीसेट रोक सकते हैं।

देखें http://www.knockmeout.net/2011/04/pausing-notifications-in-knockoutjs.html

+0

यही कारण है ठीक वही चीज़ जो मैं खोज रहा था। आपका बहुत बहुत धन्यवाद! – nttakr

4

बेशर्मी निको की इस टिप्पणी पर विस्तार, आप throttle extender उपयोग करना चाहिए।

मेरे लिए मेरी गणना घोषणा इस समस्या को ठीक करने के लिए जोड़ा जा रहा है .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 }); 
संबंधित मुद्दे