मैं निम्नलिखित मॉडल है:कैसे Knockoutjs toJS() से कुछ गुण को बाहर करने के
var model = {
A: 'One',
B: 'Two',
C: 'Three'
};
मैं जो अच्छा काम करता है इन क्षेत्रों, करने के लिए विभिन्न UI तत्व बाँध। हालांकि, मैं JavaScript ऑब्जेक्ट को वापस मॉडल परिवर्तित तो मैं सर्वर में कोई परिवर्तन बचा सकते हैं:
var goingToServer = ko.toJS(model);
goingToServer
गुण ए, बी और सी में शामिल होंगे फिर भी, मान संपत्ति सी डेटा की एक बड़ी हिस्सा है चलो वह कभी नहीं बदलेगा। मैं इसे सर्वर पर वापस भेजने से बचना चाहता हूं।
वहाँ बनाने के लिए toJS()
केवल क्षेत्रों में से एक पूर्वनिर्धारित सेट शामिल जब JavaScript ऑब्जेक्ट के लिए वापस एक मॉडल को परिवर्तित करने के लिए एक रास्ता है?
एक चीज जिसकी मैं जांच कर रहा हूं वह Knockout Mapping plugin है।
जब एक जे एस वस्तु के लिए अपने दृश्य मॉडल परिवर्तित वापस, डिफ़ॉल्ट रूप से मानचित्रण प्लगइन गुण है कि आपके मूल दृश्य मॉडल का भाग थे केवल जाएगा: यह एक सेटिंग बुलाया शामिल जो इस तरह के रूप में दर्ज है है , इसके अलावा इसमें नॉकआउट से उत्पन्न _destroy प्रॉपर्टी भी शामिल होगी, भले ही यह आपके मूल ऑब्जेक्ट का हिस्सा न हो। हालांकि, अगर आप इस सरणी अनुकूलित करने के लिए चुन सकते हैं:
हालांकि, ऐसा लगता इस प्लगइन ['A', 'B']
के include
सरणी में के रूप में ko.mapping.toJS()
अभी भी ए, बी और सी में शामिल होंगे के रूप में दस्तावेज काम नहीं करता है, भले ही मैं पारित । मुझे लगता है कि इस सुविधा का उद्देश्य अतिरिक्त फ़ील्ड शामिल करना है जो मूल मॉडल में नहीं थे।
क्या मॉडल को किसी जावास्क्रिप्ट ऑब्जेक्ट में कनवर्ट करते समय कुछ गुणों को बाहर करने का कोई तरीका है, ऑब्जेक्ट उत्पन्न करने और सर्वर को भेजने से पहले मैं उन गुणों को मैन्युअल रूप से निकालने जैसे कुछ हैकी करने से कम?
कि काम नहीं करता है, तो के रूप में आप इसे करने के लिए बिल्कुल भी बाध्य नहीं कर सकते हैं। –
क्या आपने कोशिश की है? चूंकि प्रलेखन का उल्लेख नहीं है कि जेएस ऑब्जेक्ट्स पर वापस जाने पर अनदेखा किया जा सकता है या नहीं। –
हाँ, मैंने अभी कोशिश की है। जब मैं 'नोट्स' फ़ील्ड को अनदेखा करता हूं और जब मैं लागू करता हूं बाइंडिंग्स, मुझे तुरंत अपवाद मिलता है कि मॉडल में 'नोट्स' फ़ील्ड नहीं मिला है। –