couchDB pouchDB同步 - angular-pouchdb - 类型错误

时间:2015-01-21 19:21:35

标签: angularjs couchdb pouchdb

我正在尝试在一个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链,则错误消失(但同步仍然无法正常工作)

2 个答案:

答案 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事。

幸运的是,syncreplicate API也可以在数据库本身上使用。所以你可以这样做:

local.sync(remote, { live: true})

并且它是一样的。