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!
Since the URL is already URIencoded you need to decode it before passing it to angular:
$scope.go = function (params) {
$location.path(decodeURIComponent(params));
};