# Get current URL in emberjs

**URL:** <https://discuss.emberjs.com/t/get-current-url-in-emberjs/3019>\
**Category:** Uncategorized\
**Created:** [October 20, 2013, 1:02pm UTC](https://discuss.emberjs.com/t/get-current-url-in-emberjs/3019 "2013-10-20T13:02:43Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![seif](https://avatars.discourse-cdn.com/v4/letter/s/3be4f8/32.png) [@seif](https://discuss.emberjs.com/u/seif)\
**Post date:** [October 20, 2013, 1:02pm UTC](https://discuss.emberjs.com/t/get-current-url-in-emberjs/3019/1 "2013-10-20T13:02:43Z")

</div>

How can i get current URL in emberjs from afterModel? I tried using `window.location.href` but it returns url of the previous route. Also i’m using `location: 'history'`. Any ideas what could be the problem?

---

<div class="post-metadata">

**Author:** ![denisnazarov](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/denisnazarov/32/15192_2.png) [@denisnazarov](https://discuss.emberjs.com/u/denisnazarov)\
**Post date:** [October 20, 2013, 3:41pm UTC](https://discuss.emberjs.com/t/get-current-url-in-emberjs/3019/2 "2013-10-20T15:41:34Z")

</div>

To get the current url from a route instance, you can call `this.get('router.url')`. The reason you are getting the previous route’s URL is because of Ember’s run loop. Getting the url in afterModel resolves before the transition completes, giving you the route you were in before. To solve this you can wrap the call in an `Ember.run.next`:

```auto
afterModel: function (model){
    _this = this;

    Ember.run.next(function(){
        console.log _this.get('router.url')
    });
}
		

```

---

<div class="post-metadata">

**Author:** ![seif](https://avatars.discourse-cdn.com/v4/letter/s/3be4f8/32.png) [@seif](https://discuss.emberjs.com/u/seif)\
**Post date:** [October 20, 2013, 5:01pm UTC](https://discuss.emberjs.com/t/get-current-url-in-emberjs/3019/3 "2013-10-20T17:01:33Z")

</div>

That’s awesome. Thanks 🙂

---

<div class="post-metadata">

**Author:** ![manoit88](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/manoit88/32/14389_2.png) [@manoit88](https://discuss.emberjs.com/u/manoit88)\
**Post date:** [October 21, 2013, 8:59am UTC](https://discuss.emberjs.com/t/get-current-url-in-emberjs/3019/4 "2013-10-21T08:59:48Z")

</div>

How about `transition.targetName`

```javascript
afterModel: function(model, transition) {
  console.log(Ember.get(transition, 'targetName'));
}

```

---

<div class="post-metadata">

**Author:** ![seif](https://avatars.discourse-cdn.com/v4/letter/s/3be4f8/32.png) [@seif](https://discuss.emberjs.com/u/seif)\
**Post date:** [October 21, 2013, 10:47am UTC](https://discuss.emberjs.com/t/get-current-url-in-emberjs/3019/5 "2013-10-21T10:47:40Z")

</div>

@manoit88 That is better. Using transition promise, i can easily get url after the transition is complete. Thanks 🙂

```auto
transition.then ->
  url = window.location.href

```

---

<div class="post-metadata">

**Author:** ![ob7](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/ob7/32/12515_2.png) [@ob7](https://discuss.emberjs.com/u/ob7)\
**Post date:** [August 10, 2016, 6:07am UTC](https://discuss.emberjs.com/t/get-current-url-in-emberjs/3019/6 "2016-08-10T06:07:48Z")

</div>

Do you know where I may find router.url in the API?

---

<div class="post-metadata">

**Author:** ![jasonmit](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/jasonmit/32/182_2.png) [@jasonmit](https://discuss.emberjs.com/u/jasonmit)\
**Post date:** [August 10, 2016, 8:09am UTC](https://discuss.emberjs.com/t/get-current-url-in-emberjs/3019/7 "2016-08-10T08:09:19Z")

</div>

[https://github.com/emberjs/ember.js/blob/master/packages/ember-routing/lib/system/router.js#L154-L163](https://github.com/emberjs/ember.js/blob/master/packages/ember-routing/lib/system/router.js#L154-L163)

---

<div class="post-metadata">

**Author:** ![ob7](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/ob7/32/12515_2.png) [@ob7](https://discuss.emberjs.com/u/ob7)\
**Post date:** [August 10, 2016, 5:35pm UTC](https://discuss.emberjs.com/t/get-current-url-in-emberjs/3019/8 "2016-08-10T17:35:57Z")

</div>

Thanks. How did you find it?

---

<div class="post-metadata">

**Author:** ![jasonmit](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/jasonmit/32/182_2.png) [@jasonmit](https://discuss.emberjs.com/u/jasonmit)\
**Post date:** [August 11, 2016, 4:51am UTC](https://discuss.emberjs.com/t/get-current-url-in-emberjs/3019/9 "2016-08-11T04:51:14Z")

</div>

I’ve spent some time in that module in the past fixing a bug.
