【问题标题】:What's Angular transclusion?什么是 Angular 嵌入?
【发布时间】:2020-05-25 03:20:12
【问题描述】:

什么是 Angular 中的嵌入。我在 AngularJS 中找到了一些关于它的信息,但它在 Angular 中是如何工作的。 什么时候在实践中使用它?在哪些情况下使用它?

【问题讨论】:

  • 在 google 上搜索会带您到多篇提供详细信息的文章。

标签: angular transclusion


【解决方案1】:

Transclusion 是一个概念,可让您在组件内创建内容槽/ng-content。因此,如果您有一个带有 content-slot / ng-content 的子组件,则使用该子组件的父组件可以将它想要的任何内容放入子组件的 content-slot 中。

假设您有两个这样的组件:

子组件

<div>Child start</div>
<ng-content></ng-content>
<div>Child end</div>

父组件

<div>Parent start</div>
  <app-child>
    <div>Parent middle</div>
  </app-child>
<div>Parent end</div>

它会在屏幕上呈现如下内容:

Parent start
Child start
Parent middle
Child end
Parent end

如您所见,“Parent middle”行呈现在子项的中间。这是一个非常强大的概念,让您可以创建可重用的子级,其内容由其父级决定。

如果你曾经使用过 Angular Material Card 组件,它就是一个很好的例子。卡片组件创建卡片边框并将背景设置为白色,但开发人员可以从父组件决定卡片内的内容。

另外值得一提的是,您可以在单个组件中拥有多个内容槽/ng-content,并且您可以为它们分配一个 id。通过引用 ID,您可以从父组件决定子组件内部的位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-23
    • 2016-11-06
    • 2020-01-01
    • 2016-06-11
    • 2010-09-16
    • 2018-01-05
    • 1970-01-01
    • 2020-05-18
    相关资源
    最近更新 更多