我们可以做到:
template: `<ng-container #c></ng-container>`
或:
template: `<template #c></template>`
创建在呈现模板时隐藏的视图容器。
在HTML模板替代方案上使用ng-container
有区别吗?我猜测Angular必须拥有自己的模板容器,例如ng-template
或ng-container
,因为使用原始html
模板元素可能会破坏非基于浏览器的运行时,例如移动客户端等。< / p>
答案 0 :(得分:3)
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.bundle.min.js"></script>
<div class="container p-5">
<div class="row">
<div class="col-sm-12">
<h1>Message Here</h1>
<div id="head-msg"></div>
</div>
</div>
</div>
始终被呈现,但不表示DOM元素。它仍然附加在组件的视图上。
<ng-container>
仅在明确请求时才会呈现。
这是一个很好的参考资料:
http://nataliesmith.ca/blog/ngtemplate-ngcontainer-ngcontent
创建在呈现模板时隐藏的视图容器。
尽可能使用<ng-template>
。 <ng-template>
用于将DOM元素分组在一起。例如;当您需要将<ng-container>
应用于许多*ngIf
元素时,因为您不能在<td>
周围使用<span>
。