Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 我将在哪里设置响应类型?_Angularjs - Fatal编程技术网

Angularjs 我将在哪里设置响应类型?

Angularjs 我将在哪里设置响应类型?,angularjs,Angularjs,如果下面返回的是arraybuffer,我将在哪里设置responseType var User = $resource('/user/:userId', {userId:'@id'}); User.get({userId:123}, function(user, getResponseHeaders){ user.abc = true; user.$save(function(user, putResponseHeaders) { //user => saved user

如果下面返回的是arraybuffer,我将在哪里设置responseType

var User = $resource('/user/:userId', {userId:'@id'});
User.get({userId:123}, function(user, getResponseHeaders){
  user.abc = true;
  user.$save(function(user, putResponseHeaders) {
    //user => saved user object
    //putResponseHeaders => $http header getter
  });
});
我试着做:

var headers = {responseType: 'arraybufer'}

User.get(({userId:123},function(user,headers){...

但是当我使用console.log(headers)时,它会显示undefined

isArray–{boolean=}–如果为true,则此操作返回的对象是一个数组,请参阅returns部分

transformResponse–{函数(数据、HeaderGetter)|数组。}–转换函数或此类函数的数组。transform函数接受http响应体和头并返回其转换(通常是反序列化)版本。默认情况下,transformResponse将包含一个函数,用于检查响应是否类似于JSON字符串,并使用angular.fromJson对其进行反序列化。要防止此行为,请将transformResponse设置为空数组:transformResponse:[]

$resource

angular.module('itemServices', ['ngResource'])
  .factory('Item', ['$resource',
    function ($resource) {
      return $resource('items/:id',
        {id: '@id'},
        {
          query: {
            isArray: true,
            method: 'GET',
            params: {},
            transformResponse: function (data) {
              return angular.fromJson(data).body.rows
            }
          },
          get: {method: 'GET', params: {id: '@id'}},
          save: {method: 'POST'},
          update: {method: 'PUT', params: {id: '@id'}},
          delete: { method: 'DELETE', params: {} }
        });
    }]);

我看到了相同的代码,但它对我来说毫无意义
$resource('/user/:userId',{userId:'@id'},{query:{isArray:true,method:'GET',params:{},transformResponse:function(data){return angular.fromJson(data.body.rows}})
更明智的做法是使用下载二进制数据。用于与服务器端源进行交互。@georgeawg,但是如果使用$resource,我将如何实现它?重要的是要认识到调用
$resource
对象方法会立即返回空引用(对象或数组取决于
isArray
)。从服务器返回数据后,现有引用将填充实际数据。在引擎盖下,它只使用JavaScript对象或JavaScript数组。@georgeawg-Ah…我对JavaScript的理解不是很好…谢谢