$ postLink vs $ OnInit和angularjs

时间:2017-09-18 23:07:13

标签: angularjs angularjs-components

嘿,我有建立angularjs组件的经验,我只是想知道为什么每个组件生命周期中都有$ postlink循环。 我知道$ postLink循环这个钩子是在控制器的元素和它的子元素被链接之后被调用的。当组件元素已经编译好并准备就绪时,将触发此钩子。

但我有几个问题:

1.所有DOM操作都必须在$ postlink循环中或附加事件监听器吗?为什么不为此目的制定指令?

2.什么阻止我在$ OnInit中执行所有DOM Manipluation以及$ OnInit循环和$ postlink循环之间有什么区别?

提前再次感谢

1 个答案:

答案 0 :(得分:3)

1。指令或组件postLink?

您可以使用这两个选项。在我的公司,我们更喜欢使用Directives进行DOM操作。并保持组件简单;)。

2。 onInit()vs postLink()

答案是关于onInit和postLink之间的差异。

onInit()在绑定准备好后开始,组件DOM完成。但他们的孩子的DOM尚未准备好。

postLink()在Component DOM和您的DOM子项准备就绪时运行。

然后,如果您只需要使用组件元素,请使用onInit()。但如果您也需要使用儿童,请使用postLink()。另外,请记住我的观点1.