3

RequireJS で Bootbox を使用しようとしていますが、このエラーが表示されるたびに:

ReferenceError: ブートボックスが定義されていません

依存関係を使用して 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");
}
...
4

2 に答える 2

1

AMD モードのウィンドウでは bootbox が定義されていないため、自分で定義する必要があるため、以下を実行すると動作するようになりました。

define(["bootbox"], function(bootbox){
 bootbox.alert("Hello Bootbox");
});

もちろん、パスは で定義されていrequire.config()ます。これは機能します。

于 2014-04-28T06:02:32.720 に答える
1

@Pushkerの回答defineで、彼が実際に入力したい場所に入力したと思いますrequire

require(["bootbox"], function(bootbox) { bootbox.alert("Hello Bootbox"); });

(彼はまた、 a}を a と間違えてタイプしました{

さらに、複数の依存関係がある場合は、これらをrequireAND 内の関数のパラメーターとして指定し、それらが文字列配列パラメーターと同じ順序であることを確認する必要があります。例:

require(["jquery", "jquery.bootstrap", "jquery.bootbox", ...], function(jquery, bootstrap, bootbox, ...) { bootbox.alert("Hi"); } ... });

動作しているブートボックスの例については、私のフィドルを確認してください: http://jsfiddle.net/bartvanderwal/L1emr4up/

于 2014-11-19T15:14:27.567 に答える