यह एक आदर्श स्थिति नहीं है, लेकिन एक और नॉकआउट बाध्यकारी के कारण मैं उपयोग कर रहा हूं, मैं ऐसी परिस्थिति में हूं जहां मुझे तत्व को देखने की आवश्यकता है, यदि यह वास्तव में कुछ भी बाध्य है।तत्व प्राप्त करें नॉकआउट के साथ एक अवलोकन योग्य है?
तो क्या ऐसा करने का कोई तरीका है?
== अपडेट ==
मैं बैठाना यह सवाल confuses किसी भी अतिरिक्त प्रसंग जोड़ने के लिए नहीं करना चाहता था, लेकिन के रूप में यह अपेक्षाओं के अनुरूप एक जवाब अधिक प्राप्त कर सकते हैं यहाँ परिदृश्य है।
मैं नॉकआउट सत्यापन बाध्यकारी का उपयोग कर रहा हूं, जो ko.validation.group(model)
विधि का उपयोग कर सभी त्रुटियों का खुलासा करता है। हालांकि समस्या यह है कि केवल आपको टेक्स्ट त्रुटियों देता है, यह आपको कोई संदर्भ नहीं देता है कि मॉडल के किस हिस्से ने आपको त्रुटियां दी हैं। इसलिए मैंने स्रोत में एक छोटा सा परिवर्तन किया है ताकि अब प्रत्येक त्रुटि से जुड़े अवलोकन योग्य को वापस कर दिया जा सके, क्योंकि यह कुछ परिदृश्यों के लिए उपयोगी हो सकता है, लेकिन यहां से मुझे इसे तत्व से जोड़ने में सक्षम होना चाहिए ताकि मैं कुछ प्रदर्शित कर सकूं किसी प्रकार की ऑनलाइन सत्यापन।
नॉकआउट प्रमाणीकरण एक बहुत ही बुनियादी ऑनलाइन सत्यापन प्रदान करता है जहां यह आपके तत्व के बाद एक अवधि बनाता है और आप इसे एक वर्ग दे सकते हैं, लेकिन यह मेरी आवश्यकताओं के लिए बहुत बुनियादी है क्योंकि वर्तमान में हम प्रदर्शित करने के लिए क्यूटीप और अन्य अधिसूचना सिस्टम का उपयोग कर रहे हैं सत्यापन त्रुटियां, और इसके कारण मुझे डोम तत्व और त्रुटि प्राप्त करने में सक्षम होना चाहिए। अब तक मेरे पास एक अवलोकन और त्रुटि है, लेकिन मुझे उस अवलोकन करने योग्य ऑब्जेक्ट को टाई करने की आवश्यकता है (जो कि मॉडल से किसी भी ko.observable() प्रॉपर्टी को हो सकता है) इसके दिए गए डीओएम तत्व में, यदि उसके पास तत्व बाध्यकारी है।
जैसा कि मेरे पास एक वस्तु है और मैं मॉडल से प्रेरित सत्यापन का उपयोग कर रहा हूं, यूआई नहीं, समस्या वास्तव में एक कस्टम बाध्यकारी के माध्यम से हल नहीं किया जा रहा है। आदर्श रूप से मुझे एक तत्व में अवलोकन करने योग्य वस्तु (अज्ञात ko.observable()
) से शादी करने में सक्षम होना चाहिए।
भी जाने के लिए नहीं विशेष परियोजना है, लेकिन मेरे वर्तमान परियोजना सार सत्यापन जहां घटनाओं (EventSystem.SendEvent(ValidationEvents.ValidationFailed, <element>, <error>)
यानी) बंद निकाल दिया जाता है तो एक सत्यापन प्रणाली इन घटनाओं के लिए सुनता है और तत्व को त्रुटि बाँधती है, यह एक टूलटिप, एक ग्राउल शैली हो अधिसूचना, एक अलर्ट बॉक्स इत्यादि। इसलिए मैं मॉडल अवलोकनों से सत्यापन को चलाते समय इस अमूर्तता को रखने का सबसे अच्छा तरीका खोजने की कोशिश कर रहा हूं, ui के डोम तत्व (यानी jquery-ui)
== संपादित करें 2 ==
मुझे नॉकआउट प्रमाणीकरण अपने स्वयं के सत्यापन तत्वों को रखने के लिए अवलोकनों के तत्वों को जानता है, हालांकि वे मौजूदा वीए को वापस पिघलते हैं ल्यू बाध्यकारी, इसलिए मैं इसे बदलना चाहता हूं कि किसी भी सत्यापन तत्वों के लिए उनके isValidatable()
विधि के आधार पर तत्वों को जोड़ने के लिए, कम से कम इस तरह से प्रत्येक त्रुटि के लिए मैं इसे एक अवलोकन करने के लिए जोड़ सकता हूं, और तत्व बाइंडिंग के साथ किसी भी अवलोकन के लिए मैं टाई कर सकता हूं उन्हें तत्वों के लिए, और यदि कोई नहीं है तो यह ठीक है कि वे केवल व्यापक सत्यापन त्रुटियां बनेंगे। मैं इस एक कोशिश दे देंगे के रूप में कुछ इस तरह (अभी तक जांच नहीं की) होना चाहिए:
if(utils.isValidatable(valueAccessor())) {
valueAccessor().extend({hasElementalBinding: true, elementalBinding: element});
}
else {
valueAccessor().extend({hasElementalBinding: false});
}
रेखा के आसपास registerValueBindingHandler
में 250 से कम, मैं इस सवाल का कुछ समय के लिए खुला छोड़ देंगे अब बैठाना किसी और एक बेहतर समाधान है ।
प्रासंगिक? http://stackoverflow.com/questions/8911544/how-to-get-the-elements-bound-to-a-model-in-knockoutjs –
वास्तव में, यह केवल एक कस्टम बाध्यकारी के बारे में नहीं है, मैं एक परिदृश्य में हूं मेरे पास एक अवलोकन करने योग्य पहुंच है, लेकिन एक नया डोम तत्व जोड़ने की आवश्यकता है और यह जानना कि किस तत्व को बांधना है। – Grofit
मुझे सच में लगता है कि आपको अपनी खुद की कस्टम सत्यापन बाध्यकारी लिखनी चाहिए, क्योंकि तब आपको एक तत्व मिलेगा और आप इसके साथ क्या कर सकते हैं इसके साथ कर सकते हैं। –