2016-04-26 116 views
0

我讀過有關我們如何定義自定義指令,並發現了以下方法:在angularjs中定義自定義指令有多少種方式?

angular.module("myApp", []) 
    .directive("directiveName", function() { 
     return { 
      // implementation code will go here 
     } 
    }); 

但最近我發現了另一種方式來定義自定義的指令,它是如下:

angular.module("exampleApp", []) 
    .directive("directiveName", function() { 
     return function (scope, element, attrs) { 
      // implementation code will go here 
     } 
    }); 

我很想知道哪種方式比其他方式更好,更快? (如果可能,請描述兩者的優點和缺點),還有其他方法來定義自定義指令嗎?

+0

[manual](https://docs.angularjs.org/guide/directive#creating-directives)說最好的做法是使用定義對象而不是函數。 – yarons

回答

0

在指令中返回函數只是完整定義中鏈接函數的縮寫。
因此,如果您指定的東西比一個鏈接功能更多,那麼你需要將它寫的很長的路要走:

angular.module("myApp", []). 
    directive("directiveName", function() { 
     return { 
      link: function(scope, element, attrs) { 
       // implementation code will go here 
      }, 
      templateUrl: "template.html", // for example 
     }; 
    }) 
; 

相反,如果你只需要鏈接功能,您可以使用shortand版本:

angular.module("myApp", []) 
    .directive("directiveName", function() { 
     return { 
      // implementation code will go here 
     } 
    }) 
;