ngResource中的编码参数

时间:2014-08-06 11:57:20

标签: angularjs ngresource

我正在尝试将部分网址(例如/ one / two / 3)作为参数传递给ngResource:

angular.module('restapi', ['ngResource'])
    .factory('RESTApi.Generic', function($resource){
        return $resource('/some_action:url', { url: '@url' });
    });

由于我的服务器而无法理解转换的网址,因此给出了404:

http://localhost/some_action%2Fone%2Ftwo%2Fthree

有没有办法绕过这种行为并仍然使用ngResource(而不是$ http)?

2 个答案:

答案 0 :(得分:0)

不,没有办法。默认情况下,每个参数都使用以下javascript函数进行编码:encodeURIComponent

为什么你不使用像/some_action/:firstParam/:secondParam/:thirdParam这样的路径?

答案 1 :(得分:0)

有一个快速解决方法:

// In angular-resource.js and method encodeUriSegment
  function encodeUriSegment(val) {
    return encodeUriQuery(val, true).
      replace(/%26/gi, '&').
      replace(/%3D/gi, '=').
      replace(/%2B/gi, '+'). 
      replace(/%2F/gi, '/'); // <--- Add this line
  }

请参阅https://github.com/angular/angular.js/issues/1388