我正在尝试将ember-pouch用于Ember项目。远程pouchdb的同步之所以有效,是因为远程db的记录显示在浏览器存储中,如下所示...
...但是路由中的this.store.findAll('post')
仍然不返回任何内容。据我所知,适配器,路由,模型,模板都很好,findAll应该从本地数据库返回数据。知道为什么它什么都不返回吗?
// adapters/application.js
// ...
function createDb() {
let localDb = 'local_pouch_posts';
assert('emberPouch.localDb must be set', !isEmpty(localDb));
let db = new PouchDB(localDb);
let remoteDb = new PouchDB('http://localhost:5984/posts_for_demo');
db.sync(remoteDb, {
live: true,
retry: true
});
return db;
}
export default Adapter.extend({
init() {
this._super(...arguments);
this.set('db', createDb());
}
});
// models/post.js
import Model from 'ember-pouch/model';
import DS from 'ember-data';
const {
attr
} = DS;
export default Model.extend({
title: attr(),
author: attr()
});
// routes/index.js
import Route from '@ember/routing/route';
export default Route.extend({
model() {
return this.store.findAll('post');
}
});
这里是代码,以防有人想亲自查看或尝试。