नीचे कोड के साथ, इनपुट # p_in इनपुट # s_in के परिवर्तन के साथ अपडेट किया जाएगा। लेकिन मैंने क्लीननोड (सेकंड) का उपयोग किया है। क्या कोई यह समझने में मदद कर सकता है कि बाध्यकारी क्यों साफ़ नहीं किया गया है।क्या सफाई नोड() बाध्यकारी को साफ करने के लिए उपयोग किया जा सकता है?
<input id="p_in" data-bind="value: name"></input>
<input id="s_in" data-bind="value: name"></input>
<input id="cb" type="checkbox">same</input>
<script type="text/javascript">
function AddrDataSet (name) {
this.name = ko.observable(name);
};
var primary_set = new AddrDataSet('p');
var sec_set = new AddrDataSet('s');
var pri = $('#p_in')[0];
var sec = $('#s_in')[0];
ko.applyBindings(primary_set, pri);
ko.applyBindings(sec_set, sec);
ko.cleanNode(sec); // clean it
ko.applyBindings(primary_set, sec); // bind it to primary_set
ko.cleanNode(sec); // clean it again
</script>
क्लीननोड वास्तव में एक आंतरिक एपीआई है। वर्तमान में इस पर विशेष रूप से दस्तावेज़ नहीं हैं। –
@RPNiemeyer क्या आप विस्तार से बता सकते हैं कि "साथ" कीवर्ड इस समस्या को कैसे हल कर सकता है? मैं एक समान स्थिति में हूं, और एक उप-मोडल विंडो खोला/बंद है और मुझे कई बार बाइंडिंग लागू करने से बचने की आवश्यकता है .. –
बाइंडिंग या घटकों का परीक्षण करते समय मुझे मिला एक वैध उपयोग केस है। मेरे बाद प्रत्येक कार्य बाध्यकारी के लिए परीक्षण सेटअप युक्त तत्व को साफ़ करता है, फिर इसे भूलने के लिए क्लीन नोड चलाता है। फिर मैं अगले से पहले शुरू कर सकता हूं, परीक्षण के लिए बाध्यकारी सेट अप कर रहा हूं। इस तरह मैंने पूरी तरह से encapsulated परीक्षण किया है। –