将自定义jQuery插件用于Web包中的Angular指令

将自定义jQuery插件用于Web包中的Angular指令,jquery,angularjs,plugins,webpack,require,Jquery,Angularjs,Plugins,Webpack,Require,我正试图要求一个自定义jquery插件用于带有Webpack的指令元素。我开始以我期望的方式实施它 // example.directive.js var customJQPlugin = require('./customJQPlugin.plugin'); ... link: function (scope, elem) { angular.element(elem).customJQPlugin({ some: 'options' }); } .

我正试图要求一个自定义jquery插件用于带有Webpack的指令元素。我开始以我期望的方式实施它

// example.directive.js

var customJQPlugin = require('./customJQPlugin.plugin');

...

  link: function (scope, elem) {
    angular.element(elem).customJQPlugin({
      some: 'options'
    });
  }

...
这将把插件应用于元素

然后是插件文件(与指令位于同一目录中)

我的问题是,这样做的典型方式是什么,我目前有一些错误,
this
未定义,
customJQPlugin链接到
angular.elem.customJQPlugin(选项)

这是关于如何构造jQuery插件文件的更多信息,Webpack可以
要求
它才能应用于angular指令。我确信这不需要IIFE,但我不确定如何重构Webpack


编辑:asume jQuery和$在全球范围内可用

我找到了一种让它工作的方法,但我不确定这是否是最好的方法

// customJQPlugin.plugin.js

module.exports = function (options) { ... }
然后在指令文件中,我可以执行以下操作:

$.fn.customJQPlugin = require('./customJQPlugin.plugin');

...

link: function() {
  $(elem).customJQPlugin({
    some: 'options'
  });
}

....
我仍然有一些错误,但这看起来更可能与问题无关


这不是最干净的,但它确实有效,如果我发现更多,它会更新。

我已经找到了一种让它工作的方法,但我不确定这是否是最好的方法

// customJQPlugin.plugin.js

module.exports = function (options) { ... }
然后在指令文件中,我可以执行以下操作:

$.fn.customJQPlugin = require('./customJQPlugin.plugin');

...

link: function() {
  $(elem).customJQPlugin({
    some: 'options'
  });
}

....
我仍然有一些错误,但这看起来更可能与问题无关


它不是最干净的,但确实有效,如果我发现更多信息,它会更新。

您应该使用elem.customPlugin,因为angular.elem(elem)是错误的选择器。不幸的是,我尝试了这个方法,结果对两者都是一样的。$(elem).customPlugin()。我不确定。试试看。你应该使用elem.customPlugin,因为angular.elem(elem)是错误的选择器。不幸的是,我尝试了这个方法,结果是相同的。$(elem.customPlugin()。我不确定。试试看。这就是我在评论中提到的。这当然是正确的,但问题围绕着如何导出插件以及如何要求插件进入指令。如何将它应用到元素是一个附带的问题,尽管这是有效的:)这是我在评论中提到的。这当然是正确的,但问题围绕着如何导出插件和要求插件到指令中。如何将其应用于元素是一个侧重点,尽管有效:)