RequireJS noUiSlider 未定义
RequireJS noUiSlider is not defined
我遇到了 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 is not defined
有人遇到同样的问题吗?
你需要像这样要求它:
require(['jquery', 'nouislider'], function ($, noUiSlider) {
我刚刚将最后一个参数添加到回调中。如果你查看它的源代码,你会发现它检测是否存在 AMD 加载程序(检查 define
是一个函数并且上面有 属性 amd
)以及是否存在所以它调用 define
。所以你必须像我上面显示的那样使用模块的值,而不是依赖 noUiSlider
出现在全局 space.
顺便说一下,为调用define
的代码设置一个shim
是完全没有用的。 shim
仅适用于不使用 define
的代码。因此,您应该删除问题中显示的 shim
。
我遇到了 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 is not defined
有人遇到同样的问题吗?
你需要像这样要求它:
require(['jquery', 'nouislider'], function ($, noUiSlider) {
我刚刚将最后一个参数添加到回调中。如果你查看它的源代码,你会发现它检测是否存在 AMD 加载程序(检查 define
是一个函数并且上面有 属性 amd
)以及是否存在所以它调用 define
。所以你必须像我上面显示的那样使用模块的值,而不是依赖 noUiSlider
出现在全局 space.
顺便说一下,为调用define
的代码设置一个shim
是完全没有用的。 shim
仅适用于不使用 define
的代码。因此,您应该删除问题中显示的 shim
。