嘿,我有建立angularjs组件的经验,我只是想知道为什么每个组件生命周期中都有$ postlink循环。 我知道$ postLink循环这个钩子是在控制器的元素和它的子元素被链接之后被调用的。当组件元素已经编译好并准备就绪时,将触发此钩子。
但我有几个问题:
1.所有DOM操作都必须在$ postlink循环中或附加事件监听器吗?为什么不为此目的制定指令?
2.什么阻止我在$ OnInit中执行所有DOM Manipluation以及$ OnInit循环和$ postlink循环之间有什么区别?
提前再次感谢
答案 0 :(得分:3)
您可以使用这两个选项。在我的公司,我们更喜欢使用Directives进行DOM操作。并保持组件简单;)。
答案是关于onInit和postLink之间的差异。
onInit()
在绑定准备好后开始,组件DOM完成。但他们的孩子的DOM尚未准备好。
postLink()
在Component DOM和您的DOM子项准备就绪时运行。
然后,如果您只需要使用组件元素,请使用onInit()
。但如果您也需要使用儿童,请使用postLink()
。另外,请记住我的观点1.