如何将带有require.js的jquery vector maps作为模块使用?
JVP和amd兼容吗?如果有人能链接到一个例子或建议一些解决办法,那就太好了。
我不能使用填充选项,因为我正在使用旧的require.js,并且无法更新它。
发布于 2013-05-24 05:39:10
您可以自己用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
});index.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获得,因此您可以像在非模块化代码中一样使用它。
https://stackoverflow.com/questions/16711858
复制相似问题