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
вы показываете в вопросе.