How to avoid render wrapper for ng-content when it is not passed in Angular

Imagine that you have component that receives ng-content, wrapes it with container. Most popular task is to avoid rendering wrapper.
Solution 1
The simplest solution, which you can use is css:empty.
But this solution has many restrictions:
1) Only one wrapper supports
2) Wrapper’s DOM node just hidden, but rendered.
Solution 2
Let’s look to solution from angular components community using form-field code as example
The main idea of this solution is getting content children by @ContentChildren decorator and check exists it or not.
Look at @ContentChildren docs.
As you see, selector — The directive type or the name used for querying.
That means that we should to use directive to mark passed ng-content and to get access to it by @ContentChildren. And this is reason why angular components needs MatSuffix directive with empty body.
In the end of this solution, to make it working, you should add MatSuffix to your App where you use form-field.
But, MatSuffix looks like service directive, and theoretically, you can have many directives like it — you should to provide @NgModule for your consumer, like it implemented in angular form-field
See dart angular example.
Thank you!
