Angular2 DynamicContentLoader 将元素插入到目标容器的顶部

Posted

技术标签:

【中文标题】Angular2 DynamicContentLoader 将元素插入到目标容器的顶部【英文标题】:Angular2 DynamicContentLoader inserting element to top of the target container 【发布时间】:2016-08-17 23:08:40 【问题描述】:

这三个 loadXXX() 方法似乎只是将动态组件放到目标容器中。如果我的容器里面已经有组件,我如何将新组件放在现有组件的顶部? (见下面的例子)

例如

<table>
  <tr><td>Existing Row</td></tr>
  <tr><td>Existing Row</td></tr>
</table>

我想要什么:

<table>
  <tr><td>!!! Insert Here !!!!</td></tr>
  <tr><td>Existing Row</td></tr>
  <tr><td>Existing Row</td></tr>
</table>
行是我这里的组件

【问题讨论】:

我不完全理解这个问题。您要插入&lt;tr&gt;...&lt;/tr&gt; 行还是要在&lt;td&gt;...&lt;/td&gt; 内插入组件? 我想插入一个组件。示例 html 仅用于演示我要插入的位置。 【参考方案1】:

这不是一个直接的解决方案,但它可能对你有用

您可以像Angular 2 dynamic tabs with user-click chosen components 中解释的那样使用包装器元素,并像使用它一样

<table>
  <tr dcl-wrapper *ngFor="let type of types" [type]="type"><td></td></tr>
  <tr><td>Existing Row</td></tr>
  <tr><td>Existing Row</td></tr>
</table>

在组件中有一个字段,该字段包含对要插入的组件的引用

class MyComponent 
  types = [MyCmp1, MyCmp2, MyCmp3];

这样,types 数组中组件的顺序定义了组件的插入位置。

【讨论】:

以上是关于Angular2 DynamicContentLoader 将元素插入到目标容器的顶部的主要内容,如果未能解决你的问题,请参考以下文章

Angular2 [innerHtml] angular2 标签不起作用

Angular2 Dart - 在 Angular2 组件中获取文本

RangeError,谷歌地图方向服务。 angular2, SebastianM/angular2-google-maps

angular2 datePipe IOS不兼容问题

从“@angular”而不是“angular2”导入 *

angular2过滤问题