我正在尝试让delta-pouch 插件与我的 AngularJS 应用程序上的PouchDB设置一起使用。
我在 Angular 中的数据服务如下所示:
myApp.factory('DataService', ['$q', '$rootScope', 'PouchDB', function($q, $rootScope, PouchDB) {
return {
add: function(doc) {
var deferred = $q.defer();
PouchDB.post(doc, function(err, res) {
$rootScope.$apply(function() {
if (err) {
deferred.reject(err)
} else {
deferred.resolve(res)
}
});
});
return deferred.promise;
},
list: function() {
var deferred = $q.defer();
return PouchDB.allDocs({include_docs: true, descending: true}, function(err, res) {
$rootScope.$apply(function() {
if (err) {
deferred.reject(err)
} else {
deferred.resolve(res)
}
});
});
return deferred.promise;
},
update: function(obj) {
var deferred = $q.defer();
return PouchDB.save(obj, function(err, res) {
$rootScope.$apply(function() {
if (err) {
deferred.reject(err)
} else {
deferred.resolve(res)
}
});
});
return deferred.promise;
},
get: function(id) {
return PouchDB.get(id);
},
destroy: function() {
PouchDB.destroy();
}
}
}]);
list
并且add
工作正常,但调用save
返回以下错误。这是
Error: 'undefined' is not a constructor (evaluating 'new Promise(function (fulfill) {
db.post(doc).then(function (doc) {
fulfill(doc);
});
})')
老实说,我不完全确定自己在做什么,因为我对 Angular 还是很陌生。任何帮助,将不胜感激。