के साथ कस्टम बाइंडिंग का उपयोग कैसे करें अवलोकन के साथ कस्टम बाध्यकारी काम कैसे नॉकआउट करता है? कस्टम बाध्यकारी के साथ ko.observable() का उपयोग करते समय, सब कुछ अपेक्षित के रूप में काम करता है। Ko.observableArray() का उपयोग करते समय, केवल प्रारंभिक घटनाएं (init और अद्यतन एक बार) फेंक दी जाती हैं, लेकिन आगे के परिवर्तन नहीं पाए जाते हैं (Fiddle या नीचे कोड देखें)।ko.observableArray()
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="knockout-2.2.1.js"> </script>
</head>
<body>
<div data-bind="text: Observable, updateBinding: Observable"></div>
<div data-bind="foreach: ObservableArray, updateBinding: ObservableArray">
<span data-bind="text: $data"></span>
</div>
<script type="text/javascript">
ko.bindingHandlers['updateBinding'] = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
alert("Binding Handler (Init)");
},
update: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
alert("Binding Handler (Update)");
}
};
function ViewModel() {
var self = this;
self.ObservableArray = ko.observableArray();
self.Observable = ko.observable();
}
var viewModel = new ViewModel();
// Fires Init + Update for Observable and ObservableArray
ko.applyBindings(viewModel);
// Fires Update for Observable
viewModel.Observable(1);
// Does nothing
viewModel.ObservableArray.push('1');
</script>
</body>
</html>
धन्यवाद, दिलचस्प जानकारी - ये इन्फोस हैं जो मैं नॉकआउटज दस्तावेज में अपेक्षा करता हूं - कम से कम हमारे पास इस तरह की चीजों के लिए SO है :) – Dresel