NG Ng-container(逻辑容器)

ng-container
  • ng-container简单理解为一个逻辑容器,用来做一些逻辑处理的。
  • ng-container既不是一个Component,也不是一个Directive,只是单纯的一个特殊tag。
  • 这点类似于template,Angular复用了HTML5规范中template 的tag的语义,不过并没有真正利用其实现,
  • 因此在审查元素中是永远也找不到一个template元素的。
  • 不过,由于ng-container并不是HTML5中的,为了保持区分度,采用了ng-作为前缀。
  • 所以现在我们可以知道,ng-container是Angular所定义的一个特殊tag。
使用场景
  • ngFor和×ngIf不能同时处在一个元素上。
  • 所以想要在不添加额外的html标签的情况下达到同样的效果就得请出ng-container。
  • 逻辑处理;

@Component({
  selector: 'app-table',
  template: `
    <div *ngFor="let line of data">
      <ng-container *ngTemplateOutlet="lineHeaderTmpl,context: { $implicit: line }"></ng-container>
      <div *ngFor="let element of line.values">
        <ng-container *ngTemplateOutlet="lineContentTmpl,context: { $implicit: element }"></ng-container>
      </div>
    </div>
  `
})
export class AppTableComponent  {
  @Input() data: any;
  @ContentChild('lineHeader') lineHeaderTmpl: TemplateRef<any>; 
  @ContentChild('lineContent') lineContentTmpl: TemplateRef<any>; 
}
<app-table [data]="myData">
  <ng-template #lineHeader let-line>
    <div>{{line.name}}</div>
  </ng-template>
   <ng-template #lineContent let-element>
    <div>{{element.name}}</div>
   </ng-template>
</app-table>

Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.icon-default.png?t=M3K6https://serious-lose.notion.site/NG-Ng-container-c6febf55105248f1968f7c62cb0f55e2 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值