【问题标题】:Angular: How to access transformRequest data?Angular:如何访问 transformRequest 数据?
【发布时间】:2014-03-02 03:45:40
【问题描述】:

在我的控制器中,我有这个代码可以向我的工厂发出请求:

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)

【问题讨论】:

    标签: angularjs coffeescript


    【解决方案1】:

    你声明资源的方式有几个错误:

    1. $resource 第二个参数是默认参数值的哈希映射
    2. 第三个参数包含此资源的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

    【讨论】:

      猜你喜欢
      • 2014-06-27
      • 1970-01-01
      • 2015-06-13
      • 1970-01-01
      • 1970-01-01
      • 2018-06-22
      • 1970-01-01
      • 2017-03-31
      • 2020-01-09
      相关资源
      最近更新 更多