【问题标题】:Angular transclusion when using multiple components使用多个组件时的角度嵌入
【发布时间】:2018-03-26 02:16:15
【问题描述】:

我具有以下层次结构的三个组件:

<parent-component>
 <wrapper-layer>
   <inner-most>
   </inner-most>
 </wrapper-layer>
</parent-component>

我对如何通过&lt;wrapper-layer&gt; 将组件从&lt;parent-component&gt; 传递到&lt;inner-most&gt; 组件感到困惑。

在嵌入期间如何避免传递的组件显示在&lt;wrapper-layer&gt;中。

【问题讨论】:

    标签: angular typescript angular2-ngcontent


    【解决方案1】:

    因为没有答案。我就是这样完成的:

    &lt;parent-component&gt;:放置你要传递的组件。

    &lt;wrapper-layer&gt;:使用下面的sn-p:

    <ng-container ngProjectAs="component-to-pass">
                <ng-content select="component-to-pass"></ng-content>
    </ng-container>
    

    &lt;inner-most&gt;&lt;ng-content select="component-to-pass"&gt;&lt;/ng-content&gt;

    通过这种方式,传递的组件不会在中间层渲染,而是传递到&lt;inner-most&gt;组件中。

    【讨论】:

      【解决方案2】:

      如果你想将一个组件传递给它的孩子,那么你可以使用这样的东西:

      在父组件html中:

      <wrapper-layer [parent]="this">...
      

      (这会将当前组件传递给它的子组件。或者,如果您想找到自定义组件,仍然可以使用ViewChild 选择器)

      在包装层 ts:

      @Input() parent: any;
      

      然后你再次传递它,在 wrapper-layer html 中:

      <inner-most [parent]="parent">...
      

      【讨论】:

      • 它不是一个对象。我想将一个实际的组件传递到最里面。可以使用 来完成。我可以做到这一层,但我不确定当有一个额外的层时会发生什么。
      • 即组件与输入绑定的交互。
      猜你喜欢
      • 1970-01-01
      • 2023-03-16
      • 2020-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-02
      • 1970-01-01
      • 2019-08-08
      相关资源
      最近更新 更多