Angular 2: 将组件包裹在父组件中

Angular 2: Wrapping a component inside a parent component

我正在尝试将一个组件放入父组件中,就像在 React 中那样。

反应示例:

父组件:

<div>
  Hello from parent
  {this.props.children}
</div>

子组件:

<ParentComponent>
  Hello from child
</ParentComponent>

基本上我想做的是在父标签之间包含子标签。

我想到了传递元素的@Input,但这听起来很错误而且很丑陋。

Parent分量:

<div>
  Hello from parent
  <ng-content select=".txt"></ng-content>
</div>

Child分量:

<ParentComponent>
  <ng-container class="txt">
        Hello from child
    </ng-container>
</ParentComponent>

输出: 来自 parent 的问候 来自 child

的问候

鉴于您的 child 组件有一个选择器,假设它被称为 app-child,那么在 parent 组件的 HTML 模板中,您可以这样称呼它:

<div>
  Hello from parent
  <app-child></app-child>
</div>

现在,child 组件的 HTML 中的所有内容都将按原样显示。此外,如果您需要将输入从 parent 传递到 child,您可以这样做:

<div>
  Hello from parent
  <app-child [objInChild]="valFromParent"></app-child>
</div>

其中 valFromParent 是 parent 可以提供的值,objInChild 是您在 [=25] 中用 @Input 注释的 object =] 的 class 组件(比如在文件 child.component.ts 中)接收传入的值。