Редактировать данные перед отправкой с помощью ngResource

Эй, я хочу изменить данные перед их отправкой с помощью ngResource (создать объект FormData). Я делаю все как в примерах, которые я нашел, однако я не могу заставить их работать. Вот мой код:

Мой контроллер, где я устанавливаю данные и пытаюсь их отправить:

        var vm = this;
        vm.application = new Application();
        vm.application.title = 'Test title';
        Application.save({}, vm.application, function(){

        });

Мой сервис:

function application(ApiBaseUrl, $resource) {
    var actions = {
        'save': {
            metod: 'POST',
            url: ApiBaseUrl + "/applications",
            headers: { 'Content-Type': false },
            transformRequest: function (data) {
                console.log(data); //Returns 'undefined'
                return data;
            }
        }
    };
    return $resource(ApiBaseUrl + "applications/:id", {}, actions);
}

В функции transformRequest объект данных всегда помечается как «неопределенный». Я делаю что-то неправильно? Есть ли лучший способ редактировать данные перед отправкой?


person Piotr Suchanek    schedule 03.01.2016    source источник
comment
Вы пробовали: Application.save(vm.application, function(){}); ?   -  person Oliver    schedule 03.01.2016
comment
Да, я тоже пробовал этот. В этом случае данные отправляются в виде строки запроса, а объект в функции transformRequest все еще «не определен».   -  person Piotr Suchanek    schedule 03.01.2016
comment
Записали ли вы содержимое vm.application перед вызовом Application.save(vm.application, function(){});?   -  person Oliver    schedule 03.01.2016
comment
Да, вот что у меня получилось: Resource {title: "Test title"}   -  person Piotr Suchanek    schedule 03.01.2016
comment
Я не понимаю цели vm.application = new Application();, так как приложение похоже на вашу службу AngularJS. Возможно, вы захотите попробовать vm.application = {};, а затем vm.application.title = 'Test title';. Тогда это сработает?   -  person Oliver    schedule 03.01.2016
comment
Идея взята с этой страницы ссылка. Я изменил на vm.application = {}; и все равно получаю то же самое.   -  person Piotr Suchanek    schedule 03.01.2016
comment
А вы пробовали vm.application = new Application(); и vm.application.data = {"title": 'Test title'};?   -  person Oliver    schedule 03.01.2016
comment
Все такой же. Я сделал тест и добавил в $resource параметр data: {test: 1}. Затем объект отображается. Похоже, что данные не связываются должным образом, но я не знаю, почему. Все делается по примерам.   -  person Piotr Suchanek    schedule 03.01.2016


Ответы (1)


Проблема была в том, что у меня было

metod: 'POST'

когда я должен был использовать:

method: 'POST'
person Piotr Suchanek    schedule 04.01.2016