3

私は RequireJS を初めて使用するので、これはばかげた質問かもしれません。

私はrequire-jqueryを使用しています。

DataJSライブラリをモジュールとしてロードしたい。これはスタンドアロン ライブラリであり、jQuery に依存しません。

これは、私の HTML ファイル start.htm がどのように見えるかです。

<html>
<head>

</head>
<body>
    <script type="text/javascript" src="Scripts/Loader.js"></script>
</body>
</html>

Loader.js ファイルは次のようになります。

(function (window, undefined) {

    var script = document.createElement('script');
    script.async = true;
    script.src = "scripts/require-jquery.js";

    var entry = document.getElementsByTagName('script')[0];
    entry.parentNode.insertBefore(script, entry);
    script.onload = script.onreadystatechange = function () {
        var rdyState = script.readyState;
        if (!rdyState || /complete|loaded/.test(script.readyState)) {

            require([
                        "jquery",
                        "scripts/datajs-1.1.0"
                    ],
                        function (jQueryHandle, odata) {
                            alert(odata);
                        });

            script.onload = null;
            script.onreadystatechange = null;
        }
    };

})(window);

これは私のファイル構造です:

Project
|
|----- start.htm
|
|----- Scripts  
       |
       |----- datajs-1.1.0.js   
       |
       |----- require-jquery.js
       |
       |----- loader.js

ライブラリは次のようになっているため、datajs ライブラリは AMD をサポートしていると思います。

(function (window, undefined) {

    var datajs = window.datajs || {};
    var odata = window.OData || {};

    // AMD support
    if (typeof define === 'function' && define.amd) {
        define('datajs', datajs);
        define('OData', odata);
    } else {
        window.datajs = datajs;
        window.OData = odata;
    }

    /* -------------------- */

})(this);

私は何を間違っていますか?

4

2 に答える 2