angular ng-template,ng template

  angular ng-template,ng template

  在本文中,我们将简要了解Angular template的ng-template和ng-container指令,并介绍ng-template和ng-container指令的用法。

  

ng-template指令简介

   ng-template是一个有角度的结构化指令,用于呈现HTML。永远不会直接表现出来。事实上,在呈现视图之前,Angular会用一个注释替换ng模板及其内容。【相关教程推荐:《angular教程》】

  如果不使用结构化指令,而只是在ng-template中包装一些其他元素,这些元素是不可见的。

  像*ngFor和*ngIf这样的指令会把这些属性翻译成Angular内部的一个元素,并用它包装宿主元素。

  

ng-container指令简介

  为了避免创建额外的div,我们可以使用ng-container来代替。它是一个分组元素,但是不会污染样式或者元素布局,因为Angular根本不会把它放到DOM里。Ng-container是一个语法元素,由Angular解析器识别和处理。它不是指令、组件、类或接口,而更像JavaScript中if块中的花括号。

  

ng-container用法

  用法一(最基础的用法)

  在链表循环中,我们需要完成一些判断。我们知道angular的结构指令不允许两个同时存在。这时,如果我们不想添加额外的div,可以使用ng-container。

  保险商实验所

  ng-container *ngFor=列表中的字母项

  Li * ngIf= item . context { item . context } }/Li

  /ng-容器

  /ul用法二(结合ngSwitch一起使用)

  ng-container [ngSwitch]=type

  ng-container * ngswitchcase= title title/ng-container

  ng-container * ngswitchcase= text 内容/ng-container

  Ng-container *ngSwitchDefault其他/ng-container

  /ng-container当然,ngSwitch也可以直接写在html标签上。

  用法三(结合ng-template使用)

  它可以与模板结合使用来提取重复的模块内容,也可以传递给模板来显示。

  比如下面这个例子,甲方有甲方的名字和介绍,乙方也有这些介绍,我们就可以把常见的介绍整合起来。

  差异

  !-甲方-

  差异

  左方甲:/div

  div class=右

  甲方名称

  ng-container * ngtemplate outlet= introduce;上下文:{ data:data . party a } /ng-container

  !——也可以这样写——

  !-

  ng-container[ngtemplate outlet]= introduce

  [ngTemplateOutletContext]= { data:data . partya }

  /ng-容器

  [ngTemplateOutlet]也可以在ng-template上使用。

  -

  /div

  /div

  !-乙方-

  差异

  Class= left 乙方:/div

  div class=右

  乙方名称

  ng-container * ngtemplate outlet= introduce;上下文:{ data:data . party b } /ng-container

  /div

  /div

  !-let-data= data 是从上面传入的值-

  ng-template #介绍let-data=data

  p合同简介./p

  /ng-模板

  /divngTemplateOutlet是一个字符串,它定义了模板的模板引用和上下文(ng-template)对象,这样如果有多个模板引用,就可以这样使用。

  NgTemplateOutletContext是EmbeddedViewRef附加到的上下文(即ng-template)对象。这应该是一个对象,这个对象的键可以用于本地模板let声明的绑定。$implicit在上下文(即ng-template)对象中使用键会将其值设置为默认值。

  NgTemplateOutlet也可以用于外部传入模板。

  child.component.html

  ng-template[ngtemplate outlet]= TPL ref [ngTemplateOutletContext]= { data:data } /ng-templatechild.component.ts

  @ Input()TPL ref:TemplateRefany

ng-template用法

  用法一

  结合*ngIf,可以直接在html中使用if else语句,而不需要两次添加不同的判断条件。

  div * ngIf= textelse no data“{ text } }/div

  ng-模板#noData

  Class= Gary 尚无数据/div

  /ng-模板用法二

  使用antd的modalService在页面上创建对话框时,可以用html编写模板,通过引用加载,放在modal的nzContent中(有点混乱,看代码)

  ng-tempalte #含量

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: