在下面的代码中,我已经创建了一个模板,并且正在创建模板的View
,并且每当单击按钮时就将视图插入ViewContainer
中。单击模板的视图后,应从ViewContainer
中删除该视图。
https://stackblitz.com/edit/angular-bqm11b
我面临的问题是我无法弄清楚如何删除正确的视图。由于(click)
的处理程序位于模板本身中(我承认这可能是错误的方法,因此易于提出建议),我想知道此视图存储在哪个索引上,以便可以将该信息传递给处理程序。但似乎将index
传递到createEmbeddedView
并没有按我预期的那样工作。
我通过单击4次按钮来创建4个视图。索引为0,1,2,3
。现在,我删除视图2(索引1)。再次单击该按钮时,我想在索引4处创建视图(即使我知道索引1为空)。但是似乎ViewContainer会在删除视图后重新排列视图索引,并在索引3处插入下一个视图。(请参见控制台窗口中的打印内容)
1)是索引号吗?指定必须小于或等于视图容器的大小?
2)如何存储有关在哪个索引处删除哪个视图的信息,以便可以从ViewContainer
删除它?