如何围绕指令包装JS封装函数

时间:2016-12-15 15:36:06

标签: javascript angularjs angularjs-directive encapsulation

我之前已经看过这个,我正在尝试实现一个封装函数,但它违反了我的指令。没有封装就行了。有没有人之前做过这个或有没有人知道它为什么违反指令?

https://jsfiddle.net/ciderman/a0n9h0ar/1/

(function () {
  myApp.directive('myPerfectDirective', function(){
    return{
      restrict: 'E',
      scope: {
        data: '='
      },
      template: '<p>my perrrrrrfeccct directivve</p>',
      templateUrl: 'book-widget.html'
    }
  });
});

1 个答案:

答案 0 :(得分:2)

您所谈论的内容称为IIFE(立即调用的函数表达式)。

你有一部分是正确的,因为亚历杭德罗已经指出你错过了将调用该函数的()

所以将代码更改为:

(function () {
  myApp.directive('myPerfectDirective', function(){
    return{
      restrict: 'E',
      scope: {
        data: '='
      },
      template: '<p>my perrrrrrfeccct directivve</p>',
      templateUrl: 'book-widget.html'
    }
  });
})();

有关IIFE(发音为IIFY)的更多信息,请查看What is the (function() { } )() construct in JavaScript?