angular - 如何从自定义transformResponse获取资源参数

时间:2013-11-30 15:07:36

标签: angularjs

是否可以从transformResponse函数获取资源参数?

demoApp.factory('Social', function($resource) {
  return $resource('api/social/:platform', {
    platform: '@platform'
  }, {
    getAdmin: {
      method: 'GET',
      isArray: false,
      transformResponse: function(resp) {
        // so, can i get `platform` in line 3 from here?
        return resp[platform];
      }
    }
  });
});

如上面的代码所示,我可以从platform函数中获取参数transformResponse吗?

1 个答案:

答案 0 :(得分:2)

'@ platform'作为参数意味着您将'获取'uri'api / social /',并将返回对象'platform'参数的值放入存储。

当调用资源的剩余非get函数时(默认情况下为'save','remove','delete'),$ resource将通过将':platform'替换为先前保存的值来修改url。

因此,由于您处于get请求中,因此您可以完全按照指定的方式获取参数。

transformResponse: function(resp)
{
    // so, can i get `platform` in line 3 from here?
    console.log(resp.platform); // Yes you can
    return resp[platform];
}

但是,由于返回的数据现在是resp.platform,url参数被设置为resp.platform.platform ...可能不是你想要的,我猜测什么不适合你的来源