2016-03-26 3 views
3

Я использую angular-indexedDB для индексированныхDB в AngularJS. Я хочу получить ошибку, если вставка не удалась. Но я не получаю никакой ошибки, это просто выходит из функции, если я запускаю тот же код дважды, как я сделал имя уникальным.Как получить ошибку при вставке в магазин?

Ошибка:

возвращение ConstraintError _this.store.add (пункт);

ConstraintError req = this.store.openCursor();

Код:

angular.module('myModuleName') 
    .controller('myControllerName', function($scope, $indexedDB) { 

    $scope.objects = []; 

    $indexedDB.openStore('people', function(store){ 

     store.insert({"ssn": "444-444-222-111","name": "John Doe", "age": 57}).then(function(e){console.log('inside insert');}); 

     store.getAll().then(function(people) { 
     // Update scope 
     $scope.objects = people; 
     }); 
    }); 
}); 

ответ

3

Я думаю, что добавление обратного вызова ошибки внутри обещание .then должно работать

сделать также создать метод GETALL для извлечения всех данных из objects, в том, что делать response.data, чтобы получить данные, возвращенные с сервера.

Код

angular.module('myModuleName') 
    .controller('myControllerName', function($scope, $indexedDB) { 

    $scope.objects = []; 

    $scope.getAll = function(){ 
     store.getAll().then(function(response) { 
      // Update scope 
      $scope.objects = response.data; 
     }); 
    }; 
    $indexedDB.openStore('people', function(store){ 

     store.insert({"ssn": "444-444-222-111","name": "John Doe", "age": 57}) 
     .then(function(e){ 
      console.log('inside insert'); 
      //reload data only call get succeed 
      $scope.getAll(); 
     }, function(error){ 
      //do error handling stuff here 
      //you will get error returned from server here. 
      console.log('Error here', error) 
     }); 

    }); 
}); 
+0

Спасибо Панкай, теперь я в состоянии обнаружить ошибку, но все же он выходит из функции. Ошибка здесь = операция мутации в транзакции завершилась неудачно, потому что ограничение не было выполнено. Например, объект, такой как хранилище или индекс объекта, уже существует, и создается новая попытка создания. ConstraintError \t возвращение _this.store.add (item); ConstraintError req = this.store.openCursor(); – jain

+0

@ dilpeshjain, вы не справлялись с этой ошибкой на стороне сервера? –

+0

Моя цель - выяснить, находится ли эта запись уже в БД или нет, на основе результата я хочу выполнить некоторые задачи. – jain

Смежные вопросы