RequireJS noUiSlider未定义

时间:2016-12-07 16:55:41

标签: requirejs nouislider

我遇到https://github.com/leongersen/noUiSlider

的问题

使用requireJS,config.js和build.js

 paths: {
    nouislider: '../core/lib/nouislider/nouislider',
  },
  shim: {
    nouislider: {
      deps: ['jquery'],
      exports: '$'
    },
  },

脚本:

require(['jquery', 'nouislider'], function ($) {
"use strict";
  $(function () {
    var range = document.getElementById('range');
    range.style.height = '400px';
    range.style.margin = '0 auto 30px';
    noUiSlider.create(range, {
      connect: true,
      behaviour: 'tap',
      start: [ 500, 4000 ],
      range: {
        // Starting at 500, step the value by 500,
        // until 4000 is reached. From there, step by 1000.
        'min': [ 0 ],
        '10%': [ 500, 500 ],
        '50%': [ 4000, 1000 ],
        'max': [ 10000 ]
      }
    });
  });
});

在我的网上我有这个错误ReferenceError:noUiSlider未定义

任何人都有同样的问题吗?

1 个答案:

答案 0 :(得分:1)

你需要这样:

define

我刚刚将最后一个参数添加到回调中。如果查看其源代码,您将看到它检测到AMD加载器是否存在(检查amd是否为函数并且其上具有属性define)如果是,则调用{ {1}}。因此,您必须像上面显示的那样使用模块的值,而不是依赖noUiSlider存在于全局空间中。

顺便说一下,为调用shim的代码设置define是完全没用的。 shim仅适用于不使用define的代码。因此,您应该删除问题中显示的shim