如何将jquery 矢量地图与 require.js 作为模块一起使用?
JVP AMD 兼容吗?如果有人可以链接到示例或建议一些解决方法,那就太好了。
我无法使用 shim 选项,因为我使用的是旧的 require.js 并且无法更新它。
如何将jquery 矢量地图与 require.js 作为模块一起使用?
JVP AMD 兼容吗?如果有人可以链接到示例或建议一些解决方法,那就太好了。
我无法使用 shim 选项,因为我使用的是旧的 require.js 并且无法更新它。
您可以自己包装库define
,有效地实现该shim
选项的功能。快速测试设置:
jqvmap-wrapped.js
// to simplify the example used jQuery named as "jquery.js"
define(['jquery'], function(jQuery){
// original jqvmap.js goes here
// (...)
// please note: not returning anything
});
索引.html
<html>
<head>
<script data-main="index" src="require.js"></script>
</head>
<body>
<div id="vmap" style="width: 600px; height: 400px;"></div>
</body>
</html>
index.js
define(['jquery', 'jqvmap-wrapped'], function ($, _jqvmapEmpty) {
console.log('jQuery=', $);
console.log('jqvmap-wrapped=', _jqvmapEmpty);
console.log('jqvmap attached to jQuery? ', $.prototype.vectorMap);
$('#vmap').vectorMap({
// params
});
})
解释一下:插件将自己添加到 jQuery 中,它没有“独立”版本。jqvmap
包装器模块不返回任何内容,它只是具有添加到jQuery
对象的副作用;这就是为什么_jqvmapEmpty
变量本身是undefined
. 不过,它可以通过 jQuery 获得,因此您可以像在非模块化代码中那样使用它。