brianmhunt / knockout-fast-foreach

Foreach. Faster. For Knockout.
MIT License
59 stars 18 forks source link

Extending child contexts with container element #43

Open cervengoc opened 8 years ago

cervengoc commented 8 years ago

This change addresses #39 by extending the child binding context with a $parentNode property. The $parentNode property refers to the - not virtual - container node, which will become the parent node of each item.

General usage recommendation for custom bindings which need to access the parent element can be like this.

var parentNode = context.$parentNode || element.parentNode;

This technique could be kind of a default workaround for any binding which control child bindings and have such a complex logic that the child nodes are not attached to the DOM yet at binding time.

As far as FastForEach goes, it would have been very difficoult to implement a logic to insert the child nodes first, and then bind them.

I'm open to any other idea.