使用pouchdb删除和更新

时间:2015-12-07 02:44:38

标签: angularjs crud pouchdb

hye huys,我需要帮助删除和使用pouchdb更新。对于现在创建和读取数据可以工作。只是删除和更新还没有工作。 这是我的数据库

application.service('Database', ['$q', '$window',
function($q, $window)
{
    var db = new $window.PouchDB('web-sample');

    this.delete = function(documentId, documentRev, options)
    {
        return $q.when(db.delete(documentId, documentRev, options));
    };

    this.get = function(documentId)
    {
        return $q.when(db.get(documentId));
    };
}

]);

这是我的服务

application.service('Arrears', ['$q', 'Database',
function($q, Database)
{
    this.remove = function(documentId, documentRev, options)
        {
          return Database.delete(documentId, documentRev, options);
        };


    this.update = function()
    {
        return Database.update()
    };
}

]);

这是我的控制者。

application.controller('ArrearsManagementReadAllController', ['$location', '$mdSidenav', '$routeParams', '$scope', 'arrears',
function($location, $mdSidenav, $routeParams, $scope, arrears)
{
    $scope.arrears = arrears;
    $scope.remove = function(id)
    {
        $location.path('/arrears_management/all');
    };

    var arrears = {
        owner_name: '',
        owner_id: '',
        account_no: '',
        title_no: '',
        address: '',
        house_no: '',
        floor: '',
        lot: '',
        block: '',
        locality: '',
        total_outstanding: '',
        last_receipt_no: '',
        last_pay_date: '',
        last_paid_amount: '',
    };

    var actions = {};

    actions.submit = function(arrears)
    {
        Arrears.update(arrears).
            then(function(response)
            {
                $location.path('/arrears_management/all');
            });
    };
}]);

如果你们都知道如何解决我的问题请评论。感谢

1 个答案:

答案 0 :(得分:0)

尝试删除时,可能会发生冲突,因此可能需要重试删除但是在使用递归调用时使用计数器进行一定数量的重试然后抛出错误,捕获结果,如果它不能删除出于某种原因,除了冲突。

同样,在尝试更新时,您需要先尝试获取最新的文档修订版。您需要再次处理404和409错误等冲突。如果您在重试之前尝试删除修订版404。用409只做一次重试。再次,如果使用递归调用可能最好进行一定数量的重试,然后为其他条件抛出错误并捕获结果。