理解Directive中各个方法的执行顺序

Directive 在angular中扮演着非常重要的角色,而且对新手来说了使用起来也比较复杂。所以有必要来对 directive 做一个详细的分析,本片文章只来谈一下Directive中各个方法的执行顺序。

  • 先看下面的比较完整的Directive代码:

    app.directive("simple", function(){
       return {
         restrict: "E",
         template:"<div></div>",
         controller: function(scope, element, attributes){
           console.log("controller");
         },
         compile: function(element, attributes){
           console.log("compile");
           return {
               pre: function(scope, element, attributes, controller, transcludeFn){
                 console.log("pre");
               },
               post: function(scope, element, attributes, controller, transcludeFn){
                 console.log("post");
               }
           }
         }
       };
    });
    
  • controller, compile, pre 和 post 的执行顺序如下:
    1.compile (只会执行一次, 此过程是用来编译template, 但是不会执行渲染)
    2.controller (不执行渲染)
    3.pre (不执行渲染)
    4.post (执行渲染)

  • 其他关于Directive的详细讲解请看下面链接: