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 ответ

Решение

Вам нужно потребовать это так:

require(['jquery', 'nouislider'], function ($, noUiSlider) {

Я только что добавил последний параметр в обратный вызов. Если вы посмотрите на его исходный код, то увидите, что он определяет наличие загрузчика AMD (проверяет, что define является функцией и имеет свойство amd на это) и если это так называет define, Таким образом, вы должны использовать значение модуля, как показано выше, а не полагаться на noUiSlider присутствовать в глобальном пространстве.

Кстати, настройка shim для кода, который вызывает define совершенно бесполезно. shim только для кода, который не использует define, Так что вы должны удалить shim вы показываете в вопросе.

Другие вопросы по тегам