【发布时间】:2016-04-07 09:23:10
【问题描述】:
嘿,我想在使用 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 中,数据对象始终标记为“未定义”。难道我做错了什么?有没有更好的方法在发送之前编辑数据?
【问题讨论】:
-
你试过了吗:
Application.save(vm.application, function(){});? -
是的,我也试过这个。在这种情况下,数据作为查询字符串发送,函数 transformRequest 中的对象仍然是“未定义”。
-
你在
Application.save(vm.application, function(){});调用之前记录了vm.application的内容吗? -
是的,这就是我得到的:
Resource {title: "Test title"} -
我不明白
vm.application = new Application();的目的,因为应用程序似乎是您的AngularJS 服务。您可能想尝试vm.application = {};,然后尝试vm.application.title = 'Test title';.. 这样可以吗?
标签: angularjs angularjs-service angular-resource ngresource angularjs-ng-resource