24

I'm trying to change the URL with AngularJS, but not with a redirect, just change the URL after an event.

What I need is this:

www.myurl.com/inbox/1 to this www.myurl.com/inbox/25

In other words, just change the last Id.

I'm trying to do this:

$location.path('/inbox/'+id);

But what I'm getting is this:

www.myurl.com/inbox/1#/inbox/25

Matheus Lima
  • 2,103
  • 3
  • 31
  • 49

3 Answers3

19

usually angular URLs look like

www.myurl.com/#/inbox/1

in which case

$location.url('/inbox/25');

should work for you

Orane
  • 2,223
  • 1
  • 20
  • 33
18

Angular enforces the idea of one page web app. Browsers don't take any actions on change of anything after '#' value. So the best practice is to add variable attributes in url after '#' value which will keep the base url and attribute look clean on browser's address bar as well as solve your problem. My advice is to keep username, page no. , or any specific attribute id after '#' value. In your case you should use something like above said

www.myUrl.com/#/inbox/25

or

www.myUrl.com/inbox/#/25

binariedMe
  • 4,309
  • 1
  • 18
  • 34
0

For that you should use .url() instead of .path()

$location.url(`/inbox/${id}`)
David R
  • 11
  • 1