When you return controlsDescendantBindings: true
you tell Knockout not to perform bindings on child elements, that's why no child elements are bound. The documentation on creating custom bindings that control descendant bindings states that:
Normally, bindings that use controlsDescendantBindings will also call ko.applyBindingsToDescendants(someBindingContext, element) to apply the descendant bindings against some modified binding context.
However, in your case you never call ko.applyBindingsToDescendants
, so Knockout will never bind child elements.
I'm not sure why you are trying to control descendant bindings in the first place, but you need to either remove that or ensure that call you ko.applyBindingsToDescendants
if you want Knockout to bind child elements.