मेरे पास एक दृश्य मॉडल पर एक देखने योग्य के लिए एक चेकबॉक्स है। मुझे अनिवार्य रूप से पॉप अप करने की आवश्यकता है "क्या आप निश्चित हैं?" पुष्टिकरण संकेत अगर उपयोगकर्ता इसे सच से गलत में बदल देता है। मुझे "रद्द करने योग्य" परिवर्तन करने के लिए सबसे अच्छी जगह का पता लगाने में एक भयानक समय है। । ।नॉकआउट - एक परिवर्तन घटना रद्द करें?
1) क्लिक करें घटना 2) ViewModel आंतरिक सदस्यता ले "beforeChange" के लिए jQuery हैंडलर 3) ViewModel आंतरिक सदस्यता के (सामान्य)
किसी भी मामले में, मैं बेहद परिवर्तन रद्द करने का मौका दिया जाना पसंद करते हैं परिवर्तन पर प्रतिक्रिया करने के मुकाबले, संभावित रूप से इसे वापस अपने पिछले मूल्य पर वापस लाने की आवश्यकता होने पर।
क्या नॉकआउट की सदस्यता कार्यक्रम आपको परिवर्तन रद्द करने का मौका देता है? किसी भी जानकारी की सराहना की जाएगी। धन्यवाद!
http://jsfiddle.net/rniemeyer/cBvXM/
<input type="checkbox" data-bind="click: confirmCheck, checked: myvalue" />
js:
ओह, मेरे भगवान! यह fantastically मददगार है। मैं jQuery के स्टॉप के बारे में कभी नहीं जानता थाइमीडिएटप्रोपैगेशन()। जबकि मैं आमतौर पर मुख्य दृश्य मॉडल के बाहर jQuery सामग्री को संदर्भित करने से बचने का प्रयास करता हूं, यह मेरी समस्या के लिए एक अच्छा समाधान है। फिर से धन्यवाद! – blaster
मेरे मामले में 'event.stopImmediatePropagation' ने कोउ व्यू मॉडल में बदलने से मूल्य को नहीं रोका। मुझे फिर से मान सेट करना पड़ा: 'var cb = event.target; ... data.myvalue (! cb.checked); ' – Sprockincat
इस मामले में डेटा-बाइंड का क्रम * बहुत * महत्वपूर्ण है। यदि आप * पहले * ईवेंट को मानते हैं, तो मूल्य बाध्यकारी पहले निष्पादित होता है। यदि घटना बाध्य है, तो यह पहले निष्पादित होगी और प्रचार को रोक देगा। इसे टूटा हुआ देखने के लिए यह पहेली देखें: http://jsfiddle.net/8AuVj/ –