This is the tag you use for "content projection". If you have some html you want to insert into a child component, say <peters-component>. Roughly it looks like this:
Parent Template
<peters-component>
<h1>Projected Content!</h1>
<p>This is content that I want to "project" into Peter's Component</p>
</peters-component>
Child Template
<h1><i>Welcome to Peter's Component</i></h1>
<p>And heeeere is the projected content!:</p>
<ng-content></ng-content>
And that's it. You can chuck an id in there somewhere to make the code less ambiguous. If that's what spins ya wheels (it should).
The thing Angular "de-sugars" your structural directives (*ngIfs and *ngFors) into.
"The
<ng-template>is an Angular element for rendering HTML. It is never displayed directly. In fact, before rendering the view, Angular replaces the<ng-template>and its contents with a comment." - link
This is an invisible thing you can put your *ngIfs or *ngFors on. Also used for the else clause in an *ngIf.
"The Angular
<ng-container>is a grouping element that doesn't interfere with styles or layout because Angular doesn't put it in the DOM." - link