未定义RequireJS noUiSlider
我对你有意见 使用requireJS、config.js和build.js未定义RequireJS noUiSlider,requirejs,nouislider,Requirejs,Nouislider,我对你有意见 使用requireJS、config.js和build.js paths: { nouislider: '../core/lib/nouislider/nouislider', }, shim: { nouislider: { deps: ['jquery'], exports: '$' }, }, 脚本: require(['jquery', 'nouislider'], function ($) { "use st
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没有定义
有人有同样的问题吗?您需要这样要求:
require(['jquery', 'nouislider'], function ($, noUiSlider) {
我刚刚将最后一个参数添加到回调中。如果您查看其源代码,您将看到它检测是否存在AMD加载程序(检查define
是否是一个函数,并在其上具有属性AMD
),如果是,它将调用define
。因此,您必须像上面所示那样使用模块的值,而不是依赖全局空间中存在的noUiSlider
顺便说一下,为调用
define
的代码设置shim
是完全无用的<代码>垫片仅适用于不使用定义
的代码。因此,您应该卸下问题中显示的垫片。您需要这样做:
require(['jquery', 'nouislider'], function ($, noUiSlider) {
我刚刚将最后一个参数添加到回调中。如果您查看其源代码,您将看到它检测是否存在AMD加载程序(检查define
是否是一个函数,并在其上具有属性AMD
),如果是,它将调用define
。因此,您必须像上面所示那样使用模块的值,而不是依赖全局空间中存在的noUiSlider
顺便说一下,为调用define
的代码设置shim
是完全无用的<代码>垫片
仅适用于不使用定义
的代码。因此,您应该卸下问题中显示的垫片