मैं को का एक विशेष विस्तारित संस्करण का उपयोग कर रहा हूं जो एक आश्रित()/peek() प्रकार फ़ंक्शंस को एक आश्रित पर उपयोग करता है ताकि मैं डेटा को केवल फॉर्म पर सहेज सकूं यदि यह डेटाबेस (ओके पर) के लिए प्रतिबद्ध है और रद्द पर वापस लाया।नॉकआउट जे में चेकबॉक्स क्यों चेक किया जाता है जब केवल चेक किया जाता है?
समस्या यह है कि जब मैं एक चेकबॉक्स की जांच करता हूं, तो लिखने के कार्य को सुरक्षित अवलोकन योग्य पर सही कहा जाता है। हालांकि, अगर मैं चेकबॉक्स को अनचेक करता हूं, तो लेखन फ़ंक्शन नहीं कहा जाता है, इसलिए जब मॉडल को मेरे एमवीसी नियंत्रक को भेजा जाता है, तो चेकबॉक्स बूलियन अभी भी सत्य है।
क्यों नॉकआउट FALSE मान नहीं लिख रहा है?
कोड के साथ UPDATED प्रश्न:
कृपया प्रदर्शित करने के लिए इस JsFiddle देखने के लिए यहाँ: http://jsfiddle.net/b2Qu2/3/
माइनर मुद्दा
नोट वहाँ डेमो के साथ 1 अन्य समस्या यह है कि - के लिए कुछ कारण, जब मैं चेकबॉक्स को चेक/अनचेक करता हूं, तो यूआई पर peeked मान अपडेट नहीं किया जाता है, भले ही यह एक आश्रित ऑब्जेर्जेबल के लिए जंजीर हो। आप अभी भी 'peek' बटन पर क्लिक करके मूल्य को देख सकते हैं।
प्रमुख मुद्दा
समस्या को पुन: करने के लिए:
1) Click 'peek' button: Shows FALSE - CORRECT
2) Check IsAdmin checkbox
3) Click 'peek' again: Shows TRUE - CORRECT
4) Uncheck IsAdmin
5) Click 'peek' again: SHOWS TRUE - INCORRECT!!
उदाहरण परिदृश्य
एक संवाद की कल्पना को व्यवस्थापकीय उपयोगकर्ता के लिए एक चेकबॉक्स के साथ दिखाया गया है। केवल 1 व्यवस्थापक उपयोगकर्ता सेट किया जा सकता है, और यदि कोई व्यवस्थापक उपयोगकर्ता पहले से मौजूद है तो सर्वर वैध/अमान्य के साथ प्रतिक्रिया देता है। उपयोगकर्ता तब चेकबॉक्स को अनचेक करता है, लेकिन अब व्यूमोडेल सोचता है कि चेकबॉक्स हमेशा सत्य है ?? संरक्षित ऑब्सर्वेबल का उपयोग करने का कारण यह है कि यदि सर्वर प्रतिक्रिया सफल होती है, तो प्रतिबद्ध() विधि को कॉल किया जाता है ताकि UI पर सब कुछ जारी रहे। यदि उपयोगकर्ता संवाद रद्द करता है या कोई त्रुटि उत्पन्न होती है, तो मूल मान ओवरराइट नहीं होते हैं।
आप अपने कोड के और अधिक साझा कर सकते हैं, जहाँ तक कैसे यह स्वाभाविक है/इस्तेमाल किया? –
@ आरपी निमेयर - मैंने कुछ प्रश्न के साथ अपना प्रश्न अपडेट कर लिया है। इस के साथ संघर्ष कर रहा है !! – jaffa