我不是一个单页应用程序,但我宁愿制作一个Angular应用程序来运送组件,这样用户就可以在他们的网站上放置一个标签,Angular应用程序识别标签并相应地实现组件。
我们说我有一个只实现一个组件test
的Angular应用程序,应该可以将该组件放在页面的任何位置:
<body>
...
<test></test>
...
</body>
或者像这样:
<body>
<div>
...
<test></test>
...
</div>
</body>
等等。
但是,如果我在body
DOM元素中引导App模块,则会替换body
的全部内容。所以我需要的是在应用程序中实现一个Angular组件而不替换页面的其他内容的方法。
我想这样做的一个正确方法是注入和操纵templateRef
,elementRef
或viewContainerRef
中的一些,但我不确定它究竟是哪一个,我应该怎么做和他们一起做。
帮助表示赞赏!
答案 0 :(得分:2)
有一个未解决的问题Transclusion for root component
另见
答案 1 :(得分:2)
如评论中所述,您可能不希望在此特定类型的应用程序中使用Angular2 / 4。如果你想在现有页面中添加小块,React可能是你正在寻找的MVC。除此之外,您可能只想使用jquery或类似代码进行编码。 Angular2 / 4并不能作为现有的附加部分工作,并且适用于大规模的Web应用程序开发(因此是巨大的初始应用程序大小)。
如果您真的想使用Angular2 / 4,那么您希望将以前的代码转移到Angular Framework中。要么将旧页面转移到Angular2 / 4 Framework中,要么必须重写Angular代码。
很抱歉,因为我确定这不是您希望听到的答案。