AngularJS с ngResource: как проверить точный ответ от сервера?

Я создал угловой сервис для общения с простым REST-сервером, созданным на PHP. Я вижу, что могу получить одну запись, список всех записей и добавить новые записи, однако после добавления новых записей у меня возникает проблема с получением правильного ответа от сервера, чтобы иметь возможность воздействовать на него.

Я знаю, что это работает, потому что новые записи добавляются, однако я хочу разместить уведомления для пользователей, если по какой-либо причине запрос не работает, и так далее ...

Это сервис:

angular.module('adminApp.services', ['ngResource'])

    .factory('Settings', function($resource) {

        return $resource('rest/setting/:id', {id: '@id'}, {
            'query' : { method: 'GET', params: {}, format: 'json', isArray: true },
            'save'  : { method: 'POST', params: {}, format: 'json', isArray: true },
            'get'   : { method: 'GET', params: {}, format: 'json', isArray: false },
            'update': { method: 'PUT', params: {id: '@id'}, format: 'json', isArray: true },
            'delete': { method: 'DELETE', params: {id: '@id'}, format: 'json', isArray: false }
    });

});

В составе контроллера у меня есть следующее:

$scope.save = function() {
    var result = Settings.save({}, $scope.settings);

    console.log(result);

    // Here I would like to send the result to the dialog
    // to determine wether or not the request was successful
    // dialog.close(result);
};

Сетевой ответ от HTTP-запроса, как видно из консоли javascript, возвращает «true», возвращаемое с сервера, однако console.log (результат) возвращает массив символов в «true» - я догадался происходит из-за опции isArray: true в 'save', которая необходима, потому что параметры передаются на сервер в виде массива:

[$promise: Object, $resolved: false]
    0: "t",
    1: "r",
    2: "u",
    3: "e",
    $promise: Object,

    // I tried passing result.$resolved to the dialog,
    // but if yousee above it resolves to false up top first
    $resolved: true,
    length: 4,
    __proto__: Array[0]

Я знаю, что HTTP-ответ - это значение json, равное true, если бы я мог подключиться к нему, это было бы легко (я пришел из фона jQuery, возможно, я делаю это неправильно, я решил полностью удалить jQuery из этого проект, чтобы не позволить этому препятствовать моему обучению).

Наверное, вопрос в том, как мне получить ответ от сервера на переменную JS, с которой я могу работать?

Изменить: Обновлено

Я изменил свой сервис на:

angular.module('adminApp.services', ['ngResource'])
    .factory('Settings', function($http, $resource, $log) {
        return $resource('rest/setting/:id', {id: '@id'}, {
            save   : {
            method: 'POST',
            params: {},
            format: 'json',
            isArray: true,
            transformResponse: [function(data, headersGetter) {
                $log.info(data); // returns true
                return { response: data };
            }].concat($http.defaults.transformResponse)
        },
        update : { method: 'PUT', params: {id: '@id'}, format: 'json', isArray: true },
        delete : { method: 'DELETE', params: {id: '@id'}, format: 'json', isArray: false }
    });

});

И призыв к:

$scope.save = function() {
    $scope.results = Settings.save({}, $scope.settings);
    console.log($scope.results); // Still returns the response with $promise
    //dialog.close(true);
};

Но я все еще не оправдываюсь как ответ

Ответы на вопрос(2)

Ваш ответ на вопрос