当前位置: 首页 > 知识库问答 >
问题:

ng2 - ng-container 和 ng-template 标签之间的区别

易骁
2023-03-14

有人可以说明使用之间的区别吗

我找不到< code>NgContainer的文档,也不太明白模板标签之间的区别。

每个代码示例都会有很大帮助。

共有3个答案

单于煌
2023-03-14

ng模板
代码

<div *ngIf="hero" class="name">{{hero.name}}</div>

Angular 将 *ngIf 属性转换为

<ng-template [ngIf]="hero">
  <div class="name">{{hero.name}}</div>
</ng-template>

ng容器
在没有合适的宿主元素时用作分组元素
示例:

<div>
  Pick your favorite hero
  (<label><input type="checkbox" checked (change)="showSad = !showSad">show sad</label>)
</div>
<select [(ngModel)]="hero">
  <span *ngFor="let h of heroes">
    <span *ngIf="showSad || h.emotion !== 'sad'">
      <option [ngValue]="h">{{h.name}} ({{h.emotion}})</option>
    </span>
  </span>
</select>

这样不行。因为有些HTML元素要求所有的直接子元素都是特定的类型。例如,<代码>

<div>
  Pick your favorite hero
  (<label><input type="checkbox" checked (change)="showSad = !showSad">show sad</label>)
</div>
<select [(ngModel)]="hero">
  <ng-container *ngFor="let h of heroes">
    <ng-container *ngIf="showSad || h.emotion !== 'sad'">
      <option [ngValue]="h">{{h.name}} ({{h.emotion}})</option>
    </ng-container>
  </ng-container>
</select>

这会有用的。

更多信息:角度结构方向

濮君植
2023-03-14

ng-模板用于ng-ifng-forng-Swit等结构指令。如果您在没有结构指令的情况下使用它,则不会发生任何事情,它将呈现。

当您没有合适的包装器或父容器时,可以使用< code>ng-container。在大多数情况下,我们使用< code>div或< code>span作为容器,但是在这种情况下,当我们想要使用多个结构指令时。但是我们不能在一个元素上使用一个以上的结构指令,在这种情况下,< code>ng-container可以用作容器

韩禄
2023-03-14

它们目前(2. x、4. x)都用于将元素组合在一起,而无需引入将在页面上呈现的另一个元素(例如divspans)。

然而,模板需要讨厌的语法。例如,

<li *ngFor="let item of items; let i = index; trackBy: trackByFn">...</li>

会变成

<template ngFor let-item [ngForOf]="items" let-i="index" [ngForTrackBy]="trackByFn">
  <li>...</li>
</template>

您可以使用< code>ng-container来代替,因为它遵循您所期望的并且可能已经熟悉的< code>*语法。

<ng-container *ngFor="let item of items; let i = index; trackBy: trackByFn">
  <li>...</li>
</ng-container>

您可以通过阅读GitHub上的此讨论找到更多详细信息。

请注意,在4.x <代码>中

使用

  • <代码>
 类似资料:
  • 问题内容: 在angularjs中,我想知道ng-submit和ng-click之间有什么区别?具体来说,两者各自的优缺点,以及您什么时候应该彼此取舍?谢谢! *编辑* 我对此进行了更多研究,但我仍然想知道使用ng-submit有什么好处(如果有)?您能否使用ng-click代替所有ng- submit?这会引起任何问题吗?再次感谢! 问题答案: ngSubmit指令绑定到浏览器中的Submit

  • 我试图理解ng if和ng show之间的区别,但在我看来它们是一样的。 选择使用其中一种或另一种有什么区别吗?

  • 问题内容: 我是 AngularJs的 新手。谁能说出ng-model和data-ng-model之间的区别? 与ng-model 使用data-ng-model 问题答案: 最佳实践:建议使用破折号分隔格式(例如ng-bind用于ngBind)。 如果要使用HTML验证工具,则可以改用数据前缀版本(例如ngBind的data-ng-bind)。 出于遗留原因,可以接受上面显示的其他表格,但是我们

  • 问题内容: 据我了解,ng-model可以为分配模型的那个特定元素设置值。鉴于ng值与ng-model有何不同? 问题答案: 它与ng-model结合使用;对于radios和selects,是选择该项目时设置为ng- model的值。用它替代元素的“值”属性,该属性将始终将字符串值存储到关联的ng-model。 在单选按钮的上下文中,它允许您使用非字符串值。例如,如果您有单选按钮“是”和“否”(或

  • ng-three-template This project was generated with Angular CLI and is designed as a basictemplate for ThreeJS combined with Angularand Bootstrap in Version 4.x The project is setup to use global SCSS o

  • 问题内容: 我正在学习角度。我不明白onLoad和ng-init之间的变量初始化有什么区别。它在哪个范围内创建此变量。 也请给我一些关于隔离范围的想法。 问题答案: 是,可以放置内的指令的,的,不管,而是一个属性特定于指令其功能如同一个。要了解我的意思,请尝试以下操作: 您会看到只有第二个出现。 隔离范围是一个原型,它不从其父范围继承。用外行的术语来说,如果您有一个小部件不需要任意读写父作用域,则