我尝试使用require.js加载localforage lib,但无法使其正常工作。这是我的require.js配置:
main.html中:
<body>
<script type="text/javascript" src="/xyz/js/lib/require-2.1.22.js"> </script>
<script type="text/javascript" src="/xyz/js/main.js?version=1.0.0"></script>
</body>
main.js:
var appVersion = "1.0.0";
requirejs.config({
baseUrl: "../js",
paths: {
jquery: "lib/jquery-1.12.1",
jquery_caret: "lib/jquery.caret-1.5.1",
lodash: "lib/lodash-4.5.1",
localforage: "lib/localforage"
},
shim: {
jquery_caret: ["jquery"]
},
urlArgs: "version=" + appVersion
});
var scriptSources = ["jquery", "jquery_caret", "localforage", "lodash"];
require(scriptSources, function() {
//all scripts loaded
});
但是当我后来使用像这样的localforage
时localforage.setDriver(localforage.INDEXEDDB).then(function() {
console.log("Hi there");
});
始终未定义。顺便说一句。与Dexie {我}有同样的问题。 当我从README
添加以下代码时define(['localforage'], function(localforage) {
// As a callback:
localforage.setItem('mykey', 'myvalue', console.log);
// With a Promise:
localforage.setItem('mykey', 'myvalue').then(console.log);
});
我从requirejs.org/docs/errors.html#mismatch收到错误 但是这是什么意思 ?有人可以向我解释一下吗?我真的不明白。
答案 0 :(得分:-1)
您可以尝试使用repo的示例,特别是this one。
更详细地说,完整的main.js
文件将如下所示:
requirejs.config({
paths: {
localforage: 'path/to/dist/localforage'
}
});
define(['localforage'], function(lf) {
lf.ready().then(function() {
var key = 'STORE_KEY';
var value = 'What we save offline';
lf.setItem(key, value).then(function() {
console.log('SAVING', value);
return lf.getItem(key);
}).then(function(readValue) {
console.log('READING', readValue);
});
});
});
&#13;
此外,getItems
插件的an example似乎与您的相似。