角度资源编码URL

Nad*_*awi 8 urlencode angularjs angular-resource

我有一个资源定义如下:

app.factory("DatumItem", function($resource) {
    return $resource('/data/:id', {id: '@id'});
});
Run Code Online (Sandbox Code Playgroud)

在我看来,我有:

<div ng-click="go('/datum/' + d.to_param)">Test</div>
Run Code Online (Sandbox Code Playgroud)

其中go()在我的控制器中定义为:

$scope.go = function (params) {
    $location.path(params);
};
Run Code Online (Sandbox Code Playgroud)

对于有问题的项目,d.param等于

TkZUOWZwcnc9Uldo%0ASzRvd2FiWk
Run Code Online (Sandbox Code Playgroud)

但是当我用正确的ID调用DatumItem.get()时,它正在将id更改为

TkZUOWZwcnc9Uldo%250ASzRvd2FiWk
Run Code Online (Sandbox Code Playgroud)

在这种情况下,有没有办法阻止%被编码为%25?

我尝试过使用encodeURI,encodeURIComponent的组合无济于事.

任何帮助将不胜感激,谢谢!

Ale*_*øld 9

由于URL已经过URI编码,因此您需要先将其解码,然后再将其传递给angular:

$scope.go = function (params) {
    $location.path(decodeURIComponent(params));
};
Run Code Online (Sandbox Code Playgroud)