удалить и обновить с помощью pouchdb

0

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');
            });
    };
}]);

если вы все знаете, как решить мои проблемы, прокомментируйте. благодаря

Теги:
crud
pouchdb

1 ответ

0
Лучший ответ

При попытке удалить конфликт может возникнуть, поэтому может потребоваться повторная попытка удаления, но при использовании рекурсивного вызова используйте счетчик для заданного количества попыток, а затем выведите ошибку, поймав результат, если он не может удалить по какой-либо причине кроме конфликта.

Аналогично, при попытке обновления вам нужно сначала получить последнюю версию документа перед тем, как попытаться поставить. Снова вам нужно обрабатывать конфликты, такие как ошибки 404 и 409. Если вы попробуете 404 попытку удаления ревизии перед повторной попыткой. С 409 просто повторите попытку. Опять же, если использовать рекурсивный вызов, вероятно, лучше всего сделать определенное количество попыток, а затем выбросить ошибку для других условий и поймать результат.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню