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

How to Wrap a JS Encapsulating Function Around a Directive

我以前见过这个,我正在尝试实现一个封装函数,但它破坏了我的指令。没有封装它就可以工作。以前有没有人这样做过或者有人知道为什么它违反了指令?

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'
    }
  });
});

你说的是 IIFE(立即调用函数表达式)。

你说对了一部分,正如 Alejandro 指出的那样,你缺少将调用该函数的 ()

所以将您的代码更改为如下所示:

(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?