【发布时间】:2016-05-30 15:12:48
【问题描述】:
我正在将 angular 1 应用程序转换为 angular 2。我有动态指令在 ng-repeat 中的 angular 1 中工作。我离开了这个笨蛋 http://plnkr.co/edit/ET3LZhXBRjwIsbKVIwxm?p=preview
<tr ng-repeat="p in people">
<td dynamic-directive="p.dir" blah="p"></td>
</tr>
来自这个问题:Angularjs dynamic directive inside ngrepeat
是否可以用 angular 2 做基本相同的事情? 我的数据模型会告诉我要使用什么组件以及将什么数据传递给组件。
编辑: 所以我的用例是: 我网站上的主页可以有 10 个不同的小部件,每个小部件都是一个不同的组件 - 目前是角度 1 中的指令。每个组件需要不同的数据。组件可以按任何顺序排列,具体取决于站点管理员在数据库中添加它们的方式。我从 API 获取数据。在数据结构中,存在一对多:组件>数据。我需要遍历数据并根据数据集中的组件名称动态添加组件。数据结构看起来像这样。
"Topics":[
{
"component":"header",
"Slug":"fake-slug",
"URL":"some-image"
},
{
"component":"standardcontent",
"Slug":"fake-slug",
"URL":"some-image"
},
{
"component":"playlist",
"PlayLists":[
{
"CONPlaylistID":"22",
"description":"fake-description",
"image":"fake-image"
},
{
"CONPlaylistID":"22",
"description":"fake-description",
"image":"fake-image"
}
]
}
]
提前致谢
【问题讨论】:
-
这是关于动态组件还是动态指令。标题和内容不一致。
-
对不起,我更正了。基本上我很乐意使用其中任何一个,如果其中一个可以工作的话。谢谢
-
我不太了解 Angular1。我想我在下面的答案中链接的答案可能是您想要的,否则如果您能解释您要解决的问题,那就太好了。
-
我不这么认为。我在上面添加了更多解释。谢谢
-
现在我更加确信这与下面我的答案中链接的选项卡解决方案非常相似。此外,您还需要一个从组件名称到组件类型(类)的映射,因为这是
ViewContainerRef.createComponent()需要的。
标签: angular