我正在尝试在一个Angular应用程序中使用pouchDB和一个本地couchDB之间的sync()(使用angular-pouchdb)。
this.system = pouchDB('system');
var remoteSystem = pouchDB('http://localhost:5984/system');
this.system.sync(remoteSystem, {live : true}).on('change', function (change) {
// yo, something changed!
console.log('changed');
}).on('error', function (err) {
// yo, we got an error!
console.log('error');
});
但我一直收到以下错误:
Uncaught TypeError: undefined is not a function (angular.js:4146)
如果我删除.on链,则错误消失(但同步仍然无法正常工作)
答案 0 :(得分:0)
最新版本的PouchDB在PouchDB对象上有同步方法。
var remote = new PouchDB('http://localhost:5984/system');
var local = new PouchDB('system');
PouchDB.sync(local, remote, { live: true })
.on('change', function (info) {
// handle change
}).on('complete', function (info) {
// handle complete
}).on('uptodate', function (info) {
// handle up-to-date
}).on('error', function (err) {
// handle error
});
答案 1 :(得分:0)
如果您使用angular-pouchdb
,则pouchdb
对象实际上不是PouchDB
对象;这是一个特殊的angular-pouchdb
事。
幸运的是,sync
和replicate
API也可以在数据库本身上使用。所以你可以这样做:
local.sync(remote, { live: true})
并且它是一样的。