0

AMD スタイルのパターンを使用して作成しているプラ​​グインにスクリプトをロードしようとしています。プラグインの依存関係を最小限に抑えたいため、AMD ライブラリ (curl、require) は使用していません。スクリプトを読み込んでオブジェクトを希望どおりに返すことに成功しましたが、スクリプトがクロムのデバッガーに表示されないため、スクリプトのデバッグに苦労しています (私はまだ Firefox を試していませんが、私は開発用のクロム。)

問題について何か助けや洞察を提供できますか? このスクリプトの改善点はありますか?

    _loadRendererAsync: function () {
        console.info("loading renderers");
        var settings = $.graphicsSettings();
        var renderers = settings.renderers.slice(0);
        while (renderers.length > 0) {
            var renderer = renderers.shift();
            if ($.isPlainObject(settings._renderers[renderer])) { // if renderer has been cached, load it
                return $.when(settings._renderers[renderer]);
            } else if ($.isPlainObject(renderer)) { // if the renderer is a function, return it directly
                return $.when(renderer);
            } else if (typeof renderer === "string") { // if the renderer is a string dynamically load it
                // figure out if the rendere is a url
                var pathToLoad = renderer;
                if (renderer.indexOf("/") == -1)
                    pathToLoad = settings.basePath + "jqgl." + pathToLoad + ".js";
                var dfd = $.Deferred();

                // **** here is the ajax call to pull down the script ****
                $.ajax({
                    url: pathToLoad,
                    dataType: "text",
                    type: "get",
                    cache: true
                }).done(function (text) {
                    settings._renderers[renderer] = eval(text);
                    dfd.resolve(settings._renderers[renderer]);
                });
                return dfd;
            }
        }
    }
4

1 に答える 1

0

検討した後、$。getScript()を介してスクリプトをロードするための条件付きコードを使用して、requirejsをオプションの依存関係として使用することにしました。

于 2012-08-01T18:01:59.700 に答える