In KO 2.0, binding handlers actually take the 5th argument, which is the binding context. The binding context contains things like $data , $parent , $parents , $root .
So, you just need to forward this parameter to:
ko.bindingHandlers.myWith = { init: function(element, valueAccessor, allBindings, viewModel, context) { // do things return ko.bindingHandlers.with.init(element, valueAccessor, allBindings, viewModel, context); }, update: function(element, valueAccessor, allBindings, viewModel, context) { return ko.bindingHandlers.with.update(element, valueAccessor, allBindings, viewModel, context); } };
http://jsfiddle.net/rniemeyer/48uJg/2/
or
ko.bindingHandlers.myWith = { init: function() { return ko.bindingHandlers.with.init.apply(this, arguments); }, update: function() { return ko.bindingHandlers.with.update.apply(this, arguments); } };
source share