ng-template: As the name suggests the ng-template is a template element that Angular uses with structural directives (*ngIf, *ngFor, [ngSwitch] and custom directives).
模板元素,伴随着Angular结构化指令比如*ngIf, *ngFor和ngSwitch等一起使用。
Angular wraps the host element (to which the directive is applied) inside ng-template and consumes the ng-template in the finished DOM by replacing it with diagnostic comments.
结构化指令施加的元素称为host元素,host元素被ng-template包裹,当Angular渲染页面时,会消费ng-template, 并在最终生成的DOM元素中加上一些diagnostic comment.
例子:
这个id为emotyList的ng-template,出现在structual directive *ngIf里,
其中方法1使用了解糖之后的原始ngIf指令,此时Angular只会简单将ng-template替换成comment,而ng-template内的内容原封不动地出现在最后的HTML页面中。
In this method, you are providing Angular with the de-sugared format that needs no further processing. This time Angular would only convert ng-template to comments but leaves the content inside it untouched (they are no longer inside any ng-template as they were in the previous case). Thus, it will render the content correctly.
参考链接:Everything you need to know about ng-template, ng-content, ng-container, and *ngTemplateOutlet in Angular