2012-05-29 9 views
6

मेरे पास कई नॉकआउटजेस फ़ोरैच टेम्पलेट बाइंडिंग हैं जो मेरे पृष्ठ पर अलग-अलग स्थितियों में लगभग 100 <div class='item' /> बनाते हैं - सभी काम पूरी तरह से काम करते हैं सिवाय इसके कि मेरे बाद के jQuery कॉल काम नहीं करते हैं जब तक कि मैं डीबगर में रुकता हूं और jquery bindings लागू होने से पहले एक सेकंड प्रतीक्षा करता हूं :Knockout.js: ko.applyBindings (viewModel) -> क्या लागू करने के लिए एक पूर्ण घटना है बाइंडिंग?

ko.applyBindings(viewModel); 

$(".item").draggable(); 

मैं जो मैं अपने बाइंडिंग को लागू करने के बाद ViewModel बाध्य कर दिया गया है इस्तेमाल कर सकते हैं एक databound घटना के लिए देख रहा था, लेकिन मैं कुछ भी नहीं है।

+0

क्या आपने 'आफरेंडर' बाध्यकारी माना है? – Tyrsius

+0

क्षमा करें, सप्ताहांत के लिए बंद था! हाँ, मैं रेंडर के बाद लेता हूं क्योंकि इसे प्रत्येक प्रस्तुत आइटम के लिए बुलाया जाता है। यह वह जगह है जहां प्रस्तुत आइटम खींचने योग्य बना दिया जाता है। धन्यवाद! – Eulinky

उत्तर

1

जैसा कि टाइर्सियस का उल्लेख है कि आप बाद के हैंडलर का उपयोग कर सकते हैं, आप अपनी सूची से आइटम जोड़ने/निकालने के आधार पर बाद के हैंडलर का भी उपयोग कर सकते हैं। ये foreach और template बाध्यकारी दस्तावेज़ दोनों पर शामिल हैं।

आप this example के समान ऐसा करने के लिए अपना स्वयं का कस्टम बाइंडिंग भी लिख सकते हैं। मैं इसे सबसे अधिक रखरखाव योग्य और पुन: प्रयोज्य विकल्प के रूप में अनुशंसा करता हूं लेकिन यह कभी-कभी ओवरकिल होता है।

यह कहा गया है कि, यदि आप ड्रैगगेबल का उपयोग करना चाहते हैं तो वहां पहले से ही great custom binding है जिसे आप अनुकूलित कर सकते हैं।

उम्मीद है कि इससे मदद मिलती है।

+0

उत्तर के लिए धन्यवाद, ऐसा लगता है कि वास्तव में कोई अन्य घटना नहीं है। जैसा ऊपर बताया गया है, मैं अब के लिए रेंडर का उपयोग करता हूं जो अब के लिए काफी आसान लगता है। लेकिन मैंने नॉकआउट-सॉर्टेबल प्रोजेक्ट को बुकमार्क किया क्योंकि मुझे इसे जल्द ही आवश्यकता होगी :)। – Eulinky

संबंधित मुद्दे