私は 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);
私は何を間違っていますか?