2013-04-23 2 views
1

У меня вопрос о магистральном маршрутизаторе, пожалуйста помочь:Backbone маршрутизатор запускается страница обновления

У меня есть маршрутизатор:

define(['views/index', 'views/login'], function(indexView, loginView) { 

    var SelinkRouter = Backbone.Router.extend({ 

     currentView: null, 

     routes: { 
      'home': 'home', 
      'login': 'login' 
     }, 

     changeView: function(view) { 
      if(null != this.currentView) 
       this.currentView.undelegateEvents(); 
      this.currentView = view; 
      this.currentView.render(); 
     }, 

     home: function() { 
      this.changeView(indexView); 
     }, 

     login: function() { 
      this.changeView(loginView); 
     } 
    }); 

    return new SelinkRouter(); 
}); 

когда пользователи прибыли мой сайт в первый раз, «Логин» маршрут был инициирован и вывезен на страницу входа в систему, после входа в систему пользователь перешел к «домашнему» маршруту: window.location.hash = «home». теперь пользователь увидел домашнюю страницу, url выглядит так: mysite.com/#home, все было в порядке.

проблема в этом пункте, если я нажму клавишу F5 или обновить страницу каким-то другим способом, хотя маршрут «домой» был вызван снова (это нормально), в то же время вся страница была перезагружена, и все мои js снова перезагрузились. поэтому перезапуск приложения, он возвращает меня на страницу входа (слишком плохо).

Есть ли у кого-то такие же проблемы? я должен остановить обновление страницы? как?

большое спасибо за любую идею.

ответ

0

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

+0

Спасибо за консультацию в общежитии. Уверенный, я думаю об одном и том же. но я все еще хочу знать, почему произошло это неожиданное. и я хочу сделать «гладкий» входной эффект, без перескакивания страницы. –

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