2013-06-12 3 views
0

Я писал службу в AngularJS, чтобы сохранить некоторые данные, и если это не удается, предупредите пользователя. Тем не менее, после того, как я создаю свой ресурс и вызвать $ сохранить:Угловой вызов обратного вызова ресурса вызван с обещанием

myResource.$save(function(success) { 
    console.log(success); 
}, function(error) { 
    console.log(error); 
}); 

Я ожидаю, что аргумент функции обратного вызова об ошибке, чтобы быть объектом с данными, состояние, заголовки и т.д., но все это я получаю объект с «, а затем ". Я пытался дразнить его в JSFiddle:

http://jsfiddle.net/RichardBender/KeS7r/1/

Однако этот пример работает, как я первоначально ожидалось. Я дернул этот пример JSFiddle и поместил его в свой проект, и у него такая же проблема, как я изначально описывал, несмотря на то, что насколько я могу сказать, все остальное равно. Кто-нибудь может понять, почему это может быть? Мой проект был создан с Йоменом/Бауэром/Грунтом, но я не понимаю, почему эти вещи могут иметь значение здесь.

Спасибо, Richard

ответ

4

Я решил проблему. Ошибка была в моем HTTP-перехватчике, где по коду ошибки я случайно возвращал $ q.reject (обещание), а не $ q.reject (response).

Bugged версия:

.factory('httpInterceptor', function($q) { 
    return function(promise) { 
     return promise.then(
      // On success, just forward the response along. 
      function(response) { 
       return response; 
      }, 
      function(response) { 
       // ... where I process the error 
       return $q.reject(promise); 
      } 
     ); 
    }; 

Неподвижная версия:

.factory('httpInterceptor', function($q) { 
    return function(promise) { 
     return promise.then(
      // On success, just forward the response along. 
      function(response) { 
       return response; 
      }, 
      function(response) { 
       // ... where I process the error 
       return $q.reject(response); 
      } 
     ); 
    }; 

-Ричард

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