2012-06-14 9 views
7

मैं नॉकआउट और नॉकआउट-सॉर्टेबल प्लगइन से बने मेरी टू-डू-जैसी सॉर्ट करने योग्य सूची के साथ बस एक और समस्या में भाग लेता हूं।नॉकआउट "अगर" बाध्यकारी एक क्रमबद्ध सूची में अभिव्यक्ति के साथ काम नहीं करता है?

मुझे वर्तमान समय में रखे गए तत्व के तहत एक लाल डिलीमीटर डालना होगा और उस डिलीमीटर से पहले तत्व को छोड़ दिया गया है, तो उसे रद्द करें।

मैंने "दृश्यमान" बाध्यकारी के साथ प्रयास किया और यह किसी भी तरह से काम करता है, लेकिन दृश्यमान बाध्यकारी सिर्फ डीओएम तत्व को छुपाता है और यह सॉर्ट करने योग्य सरणी इंडेक्स को गड़बड़ कर देता है, इसमें अनावश्यक तत्व जोड़ता है।

<div class="delimiter" data-bind="visible: time() == $root.limit()"></div> 

"अगर" बेहतर होगा क्योंकि यह डोम तत्व सम्मिलित केवल यदि आवश्यक हो तो बंधन है, लेकिन अभिव्यक्ति मैं दिखाई के साथ प्रयोग किया हमेशा सच करने के लिए मूल्यांकन किया है और कर रहा है मैं समझ नहीं क्यों ...

<div class="delimiter" data-bind="if: time() == $root.limit()"></div> 

यहाँ बेला है: http://jsfiddle.net/ingro/VaqqF/

किसी भी मदद की सराहना की है, धन्यवाद!

उत्तर

17

आपने बस बाध्यकारी को गलत समझा है: यह नोड की सामग्री को हटा देता है, न कि नोड स्वयं। आप इसे चारों ओर एक आवरण (है कि आप बाध्यकारी जोड़ने के लिए उपयोग कर सकते हैं) बनाने के बिना एक नोड निकालना चाहते हैं, वहाँ भी है की अगर बाध्यकारी, कहा जाता containerless नियंत्रण प्रवाह वाक्य रचना टिप्पणी-संस्करण:

<!-- ko if: time() == $root.limit() --> 
    <div class="delimiter"></div> 
<!-- /ko --> 

http://jsfiddle.net/VaqqF/11/

रेफरी: http://knockoutjs.com/documentation/if-binding.html

+0

खैर मैं वास्तव में यह एक असफल, स्पष्टीकरण के लिए धन्यवाद! :) – Ingro

+1

इसके लिए धन्यवाद, दस्तावेज़ों में उदाहरण बहुत अस्पष्ट है: http://knockoutjs.com/documentation/if-binding.html वे एक div के अंदर पाठ को दिखाने/छिपाने के लिए "if" बाध्यकारी का उपयोग करते हैं (तकनीकी रूप से इसकी सामग्री)। एक बेहतर उदाहरण एक आंतरिक अवधि के साथ एक div को बाध्यकारी होगा और बाहरी div में पृष्ठभूमि रंग (या कुछ) होगा। –

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