到目前为止我所学到的关于Angular的所有内容都告诉我不直接操作DOM,考虑到框架的运行方式,这是可以理解的。在Angular应用程序中使用外部JavaScript组件(如TinyMCE as described here是否安全?如果是这样,有人可以解释原因吗?我被要求调查这个主题,但到目前为止还没有找到“不要触摸DOM”之外的任何内容。
答案 0 :(得分:0)
如果要包含依赖于直接DOM操作的javascript库,可以将其封装在组件或指令中。它可以根据需要修改DOM的这一部分。
您可以使用各种Angular组件生命周期挂钩来执行第三方库的设置和拆卸。
可以通过@Input()
参数传递与第三方库相关的数据。
如果你需要不断地将数据传递给库,你可以传递一个Observable来表示相关状态的流。
第三方组件可以通过一个或多个EventEmitters(@Output()
)与Angular世界进行通信。
当DOM的其他部分被库操纵时,事情变得棘手。
编辑:
有关如何将Split.js库与Angular一起使用的示例,请查看此plunker:http://embed.plnkr.co/qGyQWUz16Z2PY1kFUXyt/