Great post, really helpful. It’s a shame we don’t have the official docs for this.
Alexandre Gonçalves

I’m not sure I understood correctly: do you want to pass an object from the Wrapper component to the Counter component in the ng-template solution?

If so, the most straightforward way would be to use the context option for ngTemplateOutlet. See for examples of how that works.

But that wouldn’t be extremely maintainable. I would strongly recommend using a service to communicate between your components, just relying on dependency injection. You can have the service declared as a provider of the Wrapper component, which means each wrapper will have its own instance.

I hope this helps. If I misunderstood your question, please post a quick plunker of what you’re trying to do (even if it doesn’t work) so I can get a better idea. :-)