angular compile、pre-link、post-link

compile编译阶段,会返回link函数,如果同时定义了compile和link,只会执行compile

link又分为pre-link与post-link

compile负责对指令的模板进行转换,link负责将scope于dom进行连接,模型与视图建立连接,包括在元素上注册监听事件,对于同一个指令的多个实例,compile只会执行一次,而compile会每个实例执行一次。

compile:使用compile函数可以改变原始的dom(template element),在ng创建原始dom实例以及创建scope实例之前,不传递scope

pre-link:使用pre-link函数可以运行一些业务代码在ng执行完compile函数之后,但是在它所有子指令的post-link函数将要执行之前。scope对象以及element实例将会做为参数传递给pre-link函数:

post-link:使用post-link函数来执行业务逻辑,在这个阶段,它已经知道它所有的子指令已经编译完成并且pre-link以及post-link函数已经执行完成。这就是被认为是最安全以及默认的编写业务逻辑代码的原因.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容