2012-05-22 12 views
87

मुझे एक तत्व पर एकाधिक डेटा बाइंडिंग की आवश्यकता है। उदाहरण के लिए, मुझे href के साथ-साथ html डेटा-बाइंडिंग परa टैग चाहिए। मैंने कोशिश की है,एक तत्व पर एकाधिक डेटा-बाइंड विशेषताएँ कैसे हैं?

<a data-bind="html: name" 
    data-bind="attr: { href: url }" 
    data-bind="attr: { 'data-prop': xyz }"> 
</a> 

लेकिन यह काम नहीं करता है। ऐसा लगता है कि नॉकआउट केवल एकdata-bind संपत्ति का बाध्यकारी समर्थन करता है? href, आंतरिक html, और एक तत्व पर एक कस्टम "data-prop" विशेषता को कैसे बाध्य करें?

उत्तर

116
इस तरह

:

<a data-bind="html: name, attr: { href: url }"> 

आप अल्पविराम से अलग बाइंडिंग का उपयोग - विशेषता एक वस्तु गुजर रूप में ही है:

{ 
    html: name, 
    attr: { href: url } 
} 

या, आप कई attr के बारे में पूछ रहे हैं एक बार में बाइंडिंग:

<a data-bind="html: name, attr: { href: url, 'data-prop': FullName }"> 
+0

तरह , का उपयोग कर कई गुणों का उपयोग कर सकते हैं आप भी मुझे बता सकते हैं कि, अगर viewModel.tasks = ko.observableArray (tsks) तो बदलते हुए ViewModel.tasks = [new Array], ko.observable मान को सेट करते समय – user960567

+0

को घुमाए जाने के बारे में बताएं, इसे इस तरह करने का प्रयास करें: 'viewModel.tasks ([1,2,3]);'। अर्थात। आप पैरामीटर के रूप में नए मान को पार करते हुए इसे एक फ़ंक्शन के रूप में कहते हैं – paulslater19

2

इस प्रकार मैंने स्रोत विशेषता को कार्यान्वित किया और डेटा-बाइंड का उपयोग करके ईवेंट पर क्लिक किया। आप इसे उपयोगी पा सकते हैं।

<img data-bind="{click: function(data, event) {ESVendorWidget.loadFunction(data,event)}, 
       attr: {src: $data.Photo.PhotoUrl }}" 
    alt="package pic" class="big" /> 
1

मैं बस का उपयोग करें:

<input type="checkbox" 
    data-bind="click: callFunction(), checkedValue: 0, checked: Card.Days"> 

एक चेकबॉक्स तत्व के लिए।

0

आप की तरह नीचे

<a data-bind="attr: { href: url, id: id , class: classvalue}"> 

वस्तु इस

{ url: 'http://stackoverflow.com', id:'newid' , classvalue: 'classname' } 
संबंधित मुद्दे