我正在尝试将Bootbox与RequireJS一起使用,但每次出现此错误时:
ReferenceError:未定义bootbox
我为RequireJS配置了依赖项:
var
bowerLocal = "../../../bower_components/",
asstsLocal = "../../assets/";
requirejs.config({
paths: {
"jquery": bowerLocal + "jquery/dist/jquery.min",
"jquery.bootbox": bowerLocal + "bootbox/bootbox",
"jquery.bootstrap": bowerLocal + "bootstrap/dist/js/bootstrap.min",
"jquery.elevateZoom": bowerLocal + "elevatezoom/jquery.elevateZoom-2.2.3.min",
"jquery.maskedInput": bowerLocal + "jquery-maskedinput/dist/jquery.maskedinput.min"
},
/**
* Define as dependências de bibliotecas.
*/
shim: {
"jquery.bootstrap": {
deps: ["jquery"]
},
"jquery.elevateZoom": {
deps: ["jquery"]
},
"jquery.maskedInput": {
deps: ["jquery"]
},
"jquery.bootbox": {
deps: ["jquery", "jquery.bootstrap"],
exports: 'bootbox'
}
}
});
require(
["jquery", "jquery.bootstrap", "jquery.bootbox", "jquery.maskedInput", "jquery.elevateZoom"],
function (util) {
bootbox.alert("Hi");
}
...
答案 0 :(得分:1)
bootbox 必须自己定义,所以在完成下面的工作之后就可以了。
define(["bootbox"], function(bootbox){
bootbox.alert("Hello Bootbox");
});
当然路径是在require.config()
中定义的,这样可行。
答案 1 :(得分:1)
我认为在@ Pushker的回答中他键入了define
,他实际上想要输入require
:
require(["bootbox"], function(bootbox) {
bootbox.alert("Hello Bootbox");
});
(他还为}
错误输入{
。
此外,当具有多个依赖项时,您还应将这些作为require
中函数的参数指定,并确保它们与字符串数组参数中的顺序相同。例如。像这样:
require(["jquery", "jquery.bootstrap", "jquery.bootbox", ...],
function(jquery, bootstrap, bootbox, ...) {
bootbox.alert("Hi");
}
...
});
检查我的小提琴是否有用的Bootbox示例:http://jsfiddle.net/bartvanderwal/L1emr4up/