2014-12-01 4 views
0

Я разрабатываю приложение ember.js которого начальная страница находится по адресу:Установка location.href в ember.js

https://localhost:8443/

Я хочу, чтобы выполнить перенаправление с JavaScript по следующему адресу, если пользователь проверка подлинности:

https://localhost:8443/admin

Чтобы сделать это, я пишу код следующим образом:

App.ApplicationRoute = Ember.Route.extend({ 
    model: function() { 
    var that = this, 
     session = this.get('session'), 
     sessionService = this.get('services').session(); 

    return sessionService.getStatus().then(function (sessionStatus) { 
     session.setProperties(sessionStatus); 
     if (/^\/[signup]|[forgotPassword]/.test(that.router.get('url'))) return; 
     if (!session.get('authenticated')) 
     that.transitionTo('signin'); 
     else 
     window.location.href = window.location.origin + '/admin'; 
    }); 
    } 
}); 

Однако, когда я выполнить это, страница переходит на:

https://localhost/admin

Я также попытался location.assign() с тем же результатом.

Почему установка location.href или location.assign() удаляет номер порта из URL-адреса? Это что-то, что сделает Ember.js Router?

Любой другой способ я могу выполнить это?

ответ

0

Чтобы узнать, почему, вы должны посмотреть на documentation for the Location object. По сути, есть способы получить каждую часть URL-адреса, и вы просто ошибаетесь. Попробуйте один из них:

window.location.href = window.location.host + '/admin'; 

Или, более предпочтительно:

window.location.href = '/admin'; 

Второй способ хорош тем, что позволяет забыть о базовом URL в целом и просто беспокоиться по поводу относительного пути вам нужно.

Кроме того, Ember.js не влияет на эту функциональность вообще, вы просто имеете дело с API-интерфейсом браузера Javascript.

+0

Похоже, что я допустил ошибку в том, как я добавил путь к 'location.href'. Вместо того, чтобы писать 'location.href = location.origin + '/ admin /';', я написал 'location.href = location.origin + '/ admin';'. Ключ был завершающим косой чертой. – codematix

Смежные вопросы