2013-03-13 9 views
6

मैं इस प्रकार के रूप में डोम के कुछ खंड करने के लिए अपने नॉकआउट viewmodel लक्षित करना चाहते हैं:नॉकआउट से डीओएम तत्वों को छोड़कर बाध्यकारी लागू होते हैं?

ko.applyBindings(MyViewModel,$('#Target')[0]); 

हालांकि मैं यह इसके नीचे सभी Doms को लागू करने के लिए नहीं करना चाहती। इसका कारण यह है कि पूरी एसपीए चीज बहुत अच्छी तरह से काम नहीं कर रही है - जंबो के आकार के व्यूमोडेल के साथ नहीं रह सकती है जिसके परिणामस्वरूप प्रत्येक संभावित बातचीत को एक विशाल वस्तु में शामिल किया जाता है। इसलिए, पृष्ठ कई आंशिक विचारों से बना है। मैं चाहता हूं कि प्रत्येक आंशिक अपने स्वयं के व्यूमोडेल को चालू करें और माता-पिता के साथ बातचीत करने के लिए इंटरफ़ेस प्रदान करें।

कुछ नमूना डोम

<div id="Target"> 
    <!--Everything here should be included except--> 
    <div data-bind="DoNotBindBelowThis:true"> 
      <!--Everything here should NOT be included by the first binding, 
       I will specifically fill in the binding with targetted 
       ApplyBind eg. ko.applyBindings(MyOtherViewModel, $('#MyOtherTarget')[0]) 
       to fill the gaps--> 
      <div id="MyOtherTarget"> 
      </div> 
    </div> 
</div> 

फिर मैं कैसे div नीचे एक पूरे डोम पेड़ DoNotBindBelowThisapplyBindings से के साथ टैग बाहर कर सकते हैं?

उत्तर

11

ब्लॉग पोस्ट यहाँ पर एक नज़र डालें: http://www.knockmeout.net/2012/05/quick-tip-skip-binding.html

मूल रूप से, आप की तरह बाध्यकारी एक कस्टम बना सकते हैं:

ko.bindingHandlers.DoNotBindBelowThis = { 
    init: function() { 
     return { controlsDescendantBindings: true }; 
    } 
}; 
+0

मैं काफी यह नहीं मिलता है, तो हम controlsDescendantBindings झूठी वापस नहीं करना चाहिए, सच के बजाय? – Alwyn

+0

'नियंत्रण डिस्केन्डेंट बाइंडिंग्स: सच 'केओ को बताता है कि हम (यह बाध्यकारी) हमारे बच्चों को लागू बाइंडिंग को संभालेगा। उपरोक्त बाध्यकारी नमूने में जो कुछ किया जाता है, इसलिए बच्चे अकेले रह जाते हैं। फिर, आप वापस आ सकते हैं और 'ko.applyBindings' को एक विशिष्ट DOM तत्व पर कॉल कर सकते हैं जो इस बाध्यकारी तत्व के अंदर रहता है। –

+0

हाँ ने ऐसा किया। धन्यवाद। – Alwyn

संबंधित मुद्दे