在我的控制器中,我有这个代码向我的工厂提出要求:
UploadService.news.save
data: angular.toJson $scope.data
file: $scope.file[0]
, ( (response) ->
#$scope.alert = ''
alert response.data
)
这将转到我的工厂:
app.factory "UploadService", ["$resource", ($resource) ->
news: $resource("upload/news",
headers:
'Content-Type': false
transformRequest: (data) ->
fd = new FormData()
fd.append 'data', data.data
fd.append 'file', data.file
fd
)
member: $resource("404/upload/member")
]
问题是transformRequest
数据参数未定义,有什么问题? (我正在使用Angular 1.2.3)
答案 0 :(得分:1)
您声明资源的方式有几个错误:
$resource
第二个参数是默认参数值的哈希图actions
(即方法)。如果要覆盖保存操作,则需要提供其名称。这是一个有效的jsFiddle(打开您的开发控制台,然后运行)
app.factory "UploadService", ["$resource", ($resource) ->
news: $resource("upload/news", {}, # the missing second parameter
save: # You want to override the save action
method: 'POST' # it's an override, not an extend: need to set the method
headers:
'Content-Type': false
transformRequest: (data) ->
console.log data # data is now defined
return
)
member: ...
]
或查看official doc