未捕获的TypeError:$不是函数,当尝试将外部插件集成到我的Meteor应用程序中时

时间:2016-10-12 22:07:15

标签: meteor

尝试将不可用的插件集成到我的Meteor应用程序中。

以下是代码:

import $ from "meteor/jquery";
import jQuery from "meteor/jquery"

     (function($, window, document){
       'use strict';

         var doc = $(document);

         window.notifyAlert = function(){

           var $this  = $(this),
               onload = $this.data('onload');

           if(onload !== undefined) {
             setTimeout(function(){
               notifyNow($this);
             }, 800);
           }

           $this.on('click', function (e) {
             e.preventDefault();
             notifyNow($this);
           });

         }

         function notifyNow($element) {
           var message = $element.data('message'),
               options = $element.data('options');

           if(!message)
             $.error('Notify: No message specified');

           $.notify(message, options || {});
         }


     }(jQuery, window, document));

这是错误:

Uncaught TypeError: $ is not a function

我将函数包装在jQuery对象的上下文中立即调用,因为我认为这肯定有助于解决问题并防止干扰全局命名空间,但是没有,同样的问题。

如果您采取立即调用,显然它也无法正常工作。所以我完全迷失在这里做什么。

在使用Meteor和其他任何地方时,我只有这个错误。

1 个答案:

答案 0 :(得分:0)

可以将$jQuery作为包导入的属性进行访问,因此请使用括号表示法导入它们:

import {$, jQuery} from 'meteor/jquery';

请注意,根据您的文件加载顺序,您也可以从导入文件中的窗口对象访问它:

const {$} = window;