2013-09-04 2 views
0

Я использую следующие, вызывает функцию entityService.postEntity:

entityService.postEntity($scope.entityType, formData) 
    .then(function (result) { 
     $scope.grid.data.push(result); 
    }, function (result) { 
     alert("Error: " + result); 
    }) 

Вот мой объект ресурса и функции postEntity:

var EntityResource = $resource('/api/:entityType', {}, { 
     postEntity: { url: '/api/:entityType/', method: 'POST' }, 
    }); 

    postEntity: function (entityType, entity) { 
     var deferred = $q.defer(); 
     EntityResource.postEntity({ entityType: entityType }, entity, 
     function (resp) { 
       deferred.resolve(resp); 
     }, function (resp) { 
       deferred.reject(resp.data.exceptionMessage); 
     }); 
     return deferred.promise; 
    }, 

Вышеуказанные работы для меня.

Теперь я попытался заменить это:

var entityResource = $resource('/api/' + $scope.entityType + '/'); 
entityResource.save({}, formData) 
    .success(function (data, status, headers, config) { 
     var a = data; 
    }) 
    .error(function (data, status, headers, config) { 
     var b = data; 
    }); 

Это дает мне ошибку:

Object #<b> has no method 'success' 

Может кто-то дать мне советы о том, что я могу делать неправильно.

ответ

1

$ resource возвращает $ then. Используйте его следующим образом:

var myThing = $resource(...); 
var myResult = myThing.save({}, formData); 
myResult.$then(function(data){}, function(data){}); 
//    success   failure 
+0

Спасибо. Я попробовал это, но, похоже, он не пошел в. $. Я поставил точку останова на все, и он полностью ее пропустил. Правильно ли это с $ до этого? Также должен ли я использовать .save ((), formData), где formData - это мой объект? – Melina

+0

Извините, я дал вам неправильную информацию. Я редактировал мой код выше. Теперь он должен работать. Ваш вызов сохранения возвращает обещание, которое при разрешении должно пройти через блоки $ then. – MBielski

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