आप अपने बंधन तो का उपयोग allBindings.get(
nameOfOtherBinding
)
और उस तत्व है जो एक समारोह की ओर इशारा करते है बंधन के नाम का उल्लेख करने के nameOfOtherBinding
पैरामीटर सेट में अतिरिक्त जानकारी पाने के लिए कोशिश कर रहे हैं। या तो एचटीएमएल में फ़ंक्शन को शाब्दिक रखें या सुनिश्चित करें कि आप हैंडलर परिभाषा के दायरे में उस फ़ंक्शन को पा सकते हैं (जैसे वैश्विक स्तर पर window
ऑब्जेक्ट से जुड़ा हुआ है)।
http://knockoutjs.com/documentation/custom-bindings.html
JS Fiddle Example - http://jsfiddle.net/pqb4xubg/
जावास्क्रिप्ट कि हैंडलर सेट अप करना होगा (या तो init या अद्यतन में):
ko.bindingHandlers.generic = {
init: function(element, valueAccessor, allBindings){
var val = 'nothing';
// set your other bindings to get pulled in
var func = allBindings.get('func');
// normal check if the binding is actually a function
if(typeof func === 'function'){
// use the retrieved function
val = func(valueAccessor());
}
element.innerText = val;
}
};
var model = {a:'4', b:5};
ko.applyBindings(model);
एचटीएमएल कि हैंडलर का प्रयोग करेंगे (नोटिस "मज़ेदार" बाध्यकारी वाले तत्व कैसे काम नहीं करते हैं):
<div data-bind="generic: a, func: function(val){ return val + 2; }"></div>
<div data-bind="generic: a, fun: function(val){ return val + 2; }"></div>
<div data-bind="text: a"></div>
<div data-bind="generic: b, func: function(val){ return val + 2; }"></div>
<div data-bind="generic: b, fun: function(val){ return val + 2; }"></div>
<div data-bind="text: b"></div>
आप मानक डीओएम ईवेंट हैंडलर सेट करने के लिए बाध्य के इनिट का भी उपयोग कर सकते हैं और बस उन कार्यों को jQuery की तरह कुछ स्पष्ट रूप से कॉल कर सकते हैं। धन्यवाद। अच्छा दिन।
स्रोत
2015-06-03 14:59:13
मैन्युअल सदस्यता के लिए +1 (http://knockoutjs.com/documentation/observables.html#explicitly_subscribing_to_observables) –
एक कस्टम बाध्यकारी एक इनपुट IMHO के लिए ओवरकिल की तरह लगता है। एक सदस्यता मुझे बेहतर विकल्प की तरह लगता है। –
बस जो मैं खोज रहा था। धन्यवाद! - कस्टम बाइंडिंग के बारे में: क्या फ़ील्ड के लिए सामान्यीकृत बाध्यकारी करने का कोई तरीका है जहां परिवर्तन अन्य घटनाओं को ट्रिगर करने के लिए माना जाता है, और यह HTML को बाध्यकारी के भीतर से निष्पादित करने के लिए फ़ंक्शन पास करता है? – gzost