दिलचस्प पोस्ट
एएसपी.नेट गतिशील रूप से बनाए गए नियंत्रण और पोस्टबैक पायथन में एक अपरिवर्तनीय ऑब्जेक्ट कैसे बना सकता है? एचटीएमएल इनपुट फाइल चयन इवेंट एक ही फाइल को चुनने पर फ़ायरिंग नहीं करता है दो जटिल वस्तुओं की तुलना करने का सर्वोत्तम तरीका कैसे CPU उपयोग सी # में प्राप्त करने के लिए? जावा के लिए एक हेप विश्लेषण उपकरण की सिफारिशें? बाइट इवेंट को राइट माउस क्लिक करें प्रदर्शन: इनलाइन ब्लॉक – वह स्थान क्या है? मैं कैसे जांच करूं कि क्या कोई फ़ाइल पायथन का उपयोग कर रही है? एक और ब्लॉक शुरू करने से पहले दो async ब्लॉक निष्पादित होने तक प्रतीक्षा कर रहा है php mysqli केवल एक पंक्ति देता है मैं रिमोट जीआईटी शाखा कैसे बदलूंगा? आप विशेषकर वर्णमाला क्रम के बजाय ggplot2 x अक्ष का आदेश कैसे देते हैं? जांचें कि कोई तत्व एक सरणी में मौजूद है या नहीं आप बाल प्रक्रिया के लिए विशेषाधिकारों को कैसे हटा सकते हैं?

क्या आप को.एपली कॉल कर सकते हैं आंशिक दृश्य को बाइंडिंग करने के लिए?

मैं नॉकआउटजेएस का उपयोग कर रहा हूं और मेरे पास एक मुख्य दृश्य और दृश्य मॉडल है। मैं एक अन्य दृश्य के साथ पॉपअप करने के लिए एक संवाद (jQuery UI एक) चाहता हूं जो एक अलग बच्चा दृश्य मॉडल के लिए बाध्य है।

संवाद सामग्री के लिए HTML को AJAX का उपयोग करके पुनः प्राप्त किया जाता है ताकि अनुरोध किया जा सके कि मैं ko.applyBindings को कॉल करने में सक्षम होना चाहता हूं, और मैं बच्चा दृश्य मॉडल को बाइंड करने के लिए HTML के केवल भाग को AJAX के माध्यम से लोड करने के लिए संवाद ko.applyBindings चाहता हूं ।

क्या यह वाकई संभव है या क्या मुझे अपने सभी विचारों को लोड करने और मॉडलों को देखने की जरूरत है, जब पेज शुरू में लोड होता है और फिर ko.applyBindings एक बार कॉल ko.applyBindings ?

वेब के समाधान से एकत्रित समाधान "क्या आप को.एपली कॉल कर सकते हैं आंशिक दृश्य को बाइंडिंग करने के लिए?"

ko.applyBindings एक दूसरे पैरामीटर स्वीकार करते हैं जो रूट के रूप में उपयोग करने के लिए एक DOM तत्व है।

यह आपको ऐसा कुछ करने देगा:

 <div id="one"> <input data-bind="value: name" /> </div> <div id="two"> <input data-bind="value: name" /> </div> <script type="text/javascript"> var viewModelA = { name: ko.observable("Bob") }; var viewModelB = { name: ko.observable("Ted") }; ko.applyBindings(viewModelA, document.getElementById("one")); ko.applyBindings(viewModelB, document.getElementById("two")); </script> 

इसलिए, आप इस तकनीक का उपयोग एक व्यू मॉडेल को डायनामिक सामग्री में बाँध सकते हैं जिसे आप अपने संवाद में लोड करते हैं। कुल मिलाकर, आप केवल सावधान रहना चाहते हैं कि आप कॉल करने के लिए applyBindings न करें। उसी तत्वों पर applyBindings कई बार, जैसा कि आप कई ईवेंट हैंडलर्स संलग्न होते हैं।

जबकि निमेयर का उत्तर प्रश्न का अधिक सही उत्तर है, आप निम्न कार्य भी कर सकते हैं:

 <div> <input data-bind="value: VMA.name" /> </div> <div> <input data-bind="value: VMB.name" /> </div> <script type="text/javascript"> var viewModels = { VMA: {name: ko.observable("Bob")}, VMB: {name: ko.observable("Ted")} }; ko.applyBindings(viewModels); </script> 

इसका अर्थ है कि आपको DOM तत्व निर्दिष्ट करने की ज़रूरत नहीं है, और आप एक ही तत्व के साथ ही कई मॉडल बाँध सकते हैं, जैसे:

 <div> <input data-bind="value: VMA.name() + ' and ' + VMB.name()" /> </div> 

मैं एक कस्टम मॉडल को क्रम में एक तत्व के साथ बाँधने में कामयाब रहा हूं। कोड यहां है: http://jsfiddle.net/ZiglioNZ/tzD4T/457/

दिलचस्प बात यह है कि मैं एक तत्व के लिए डेटा-बाँध विशेषता को लागू करता हूं जिसे मैंने परिभाषित नहीं किया था:

  var handle = slider.slider().find(".ui-slider-handle").first(); $(handle).attr("data-bind", "tooltip: viewModel.value"); ko.applyBindings(viewModel.value, $(handle)[0]); 

आपको बाध्यकारी, साथ ही controlsDescendantBindings के with दिखेगा। http://knockoutjs.com/documentation/custom-bindings-controlling-descendant-bings.html