2013-12-02 4 views
2

В моем контроллере у меня есть этот код, чтобы сделать запрос на мою фабрику:Угловой: как получить доступ к данным transformRequest?

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 параметр данных не определен, что это неправильно с этим? (Я использую Угловое 1.2.3)

ответ

1

То, как вы объявите свой ресурс имеет несколько ошибок:

  1. $resource второй аргумент является HashMap для параметра по умолчанию значения
  2. Третий параметр содержит actions (т.е. методы) для этого ресурса. Если вы хотите переопределить действие сохранения, вам нужно указать его имя.

Здесь рабочий jsFiddle (Откройте Dev консоль, а затем запустить)

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

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