带有Jquery插件的Ionic 3

时间:2018-06-22 06:16:47

标签: javascript jquery ionic-framework angular5

你好,我希望你能帮我这个忙。 我已经尝试了两天,将Jquery Plugin与Ionic 3一起使用,但无济于事,我在项目中使用了它,如果可以的话,我会避免使用它,但是我没有时间或足够的知识来进行自定义东西。

我正在尝试创建轮盘,并且正在使用roulette.js插件,但是我不断收到来自Webpack的错误,提示 WEBPACK_IMPORTED_MODULE_2_jquery (...)。轮盘不是功能。< / p>

现在我尝试了几件事,将js文件从库转换为.ts 然后将其投射到任何一个,如下所示。我也将其添加到index.d.ts。我创建了Jquery接口,但是没有运气。有什么我想念的吗? 我安装了jquery和@ types / jquery,Jquery的工作原理类似于魅力,只有插件无法正常工作。

component.ts

   ionViewDidLoad() {

    ((<any>$('div.roulette')) as any).roulette();
  }

roulette.ts

     var pluginName = 'roulette';
$.fn[pluginName] = function(method, options) {
  return this.each(function() {
    var self = $(this);
    var roulette = self.data('plugin_' + pluginName);

    if (roulette) {
      if (roulette[method]) {
        roulette[method](options);
      } else {
        console &&
          console.error(
            'Method ' + method + ' does not exist on jQuery.roulette'
          );
      }
    } else {
      roulette = new (Roulette(method) as any)();
      roulette.init(self, method);
      $(this).data('plugin_' + pluginName, roulette);
    }
  });
};

export { Roulette };

index.d.ts

interface Jquery {
      roullete: (options:any) => void
    }

1 个答案:

答案 0 :(得分:0)

因此,经过大约一周的漫长搜索,我发现您必须将插件添加到jquery输入中

interface JQueryStatic {
  pluginName: (options:any) => void
}