Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Angular Resource Encoding URL

I have a resource defined as follows:

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

In my view I have:

<div ng-click="go('/datum/' + d.to_param)">Test</div>

where go() is defined in my controller as:

$scope.go = function (params) {
    $location.path(params);
};

For the item in question, d.param is equal to

TkZUOWZwcnc9Uldo%0ASzRvd2FiWk

But when I call DatumItem.get() with the correct ID, it is changing the id to

TkZUOWZwcnc9Uldo%250ASzRvd2FiWk

Is there a way to prevent the % from being encoded to a %25 in this case?

I've tried a combination of using encodeURI, encodeURIComponent to no avail.

any help would be greatly appreciated, thanks!

like image 562
Nader Hendawi Avatar asked May 23 '13 01:05

Nader Hendawi


2 Answers

Since the URL is already URIencoded you need to decode it before passing it to angular:

$scope.go = function (params) {
    $location.path(decodeURIComponent(params));
};
like image 150
Aleksander Blomskøld Avatar answered Oct 21 '22 17:10

Aleksander Blomskøld


you can also use unescape instead of decodeURIComponent.

Refer below code snippet -

$scope.go = function (params) {
    $location.path(unescape(params));
};
like image 37
Manoj Shevate Avatar answered Oct 21 '22 17:10

Manoj Shevate