2013-07-11 2 views
2

У меня есть приложение, в котором я использую Bootstrap nag-tabs для некоторого содержимого, которое взаимосвязано. Я пытаюсь сделать так, чтобы при повторном выборе горячей перегрузки по последней выбранной вкладке. Я также пытаюсь сделать так, чтобы последняя выбранная вкладка была повторно выбрана, когда пользователь возвращается на страницу после прохода. Вот шаблон:Bootstrap Tabs & Meteor

<template name='admin'> 
    <ul id='adminTabs' class='nav nav-tabs'> 
     {{#if isInRole 'admin'}} 
     <li class='active'><a href='#districtstab' data-toggle='tab'>Districts</a></li> 
     {{/if}} 

     {{#if isInRole 'admin, manage-users'}} 
     <li><a href='#usertab' data-toggle='tab'>Users</a></li> 
     {{/if}} 

     {{#if isInRole 'admin, manage-schools'}} 
     <li><a href='#schoolstab' data-toggle='tab'>Schools</a></li> 
     {{/if}} 

     {{#if isInRole 'admin, manage-classes'}} 
     <li><a href='#classestab' data-toggle='tab'>Classes</a></li> 
     {{/if}} 

     {{#if isInRole 'admin, manage-lessons'}} 
     <li><a href='#lessonstab' data-toggle='tab'>Lessons</a></li> 
     {{/if}} 

     {{>onlineuserstab}} 

    </ul> 
    <div class='tab-content'> 
     {{#if isInRole 'admin'}} 
     {{#isolate}} 
     <div class='tab-pane active' id='districtstab'> 
     {{>districts}} 
     </div> 
     {{/isolate}} 
     {{/if}} 

     {{#if isInRole 'admin, manage-users'}} 
     {{#isolate}} 
     <div class='tab-pane' id='usertab'> 
     {{>users}} 
     </div> 
     {{/isolate}} 
     {{/if}} 

     {{#if isInRole 'admin, manage-schools'}} 
     {{#isolate}}  
     <div class='tab-pane' id='schoolstab'> 
     {{>schools}} 
     </div> 
     {{/isolate}} 
     {{/if}} 

     {{#if isInRole 'admin, manage-classes'}} 
     {{#isolate}} 
     <div class='tab-pane' id='classestab'> 
     {{>classesTemplate}} 
     </div> 
     {{/isolate}} 
     {{/if}} 

     {{#if isInRole 'admin, manage-lessons'}} 
     {{#isolate}} 
     <div class='tab-pane' id='lessonstab'> 
      {{>lessons}} 
     </div> 
     {{/isolate}} 
     {{/if}} 

     <div class='tab-pane' id='onlinetab'> 
     {{#isolate}} 
     {{>onlineusers}} 
     {{/isolate}} 
     </div> 

    </div> 
</template> 

Как я могу выполнить то, что я за легко?

+0

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

+0

Или лучше использовать Cookies, если вы хотите, чтобы значение сохранялось при возврате пользователя: https://atmosphere.meteor.com/package/cookies –

ответ

1

Предполагая, что хэши привыкают, и у вас есть URL, как /#classestab, вы могли бы просто проверить хэш в URL на шаблон визуализации и выбрать соответствующую вкладку:

Template.admin.rendered = function() { 
    if (window.location.hash) 
    $('a[href="' + window.location.hash + '"]').tab('show'); 
} 
+0

При нажатии на вкладки хеш не добавляется в местоположение. – DigiLord

+0

Заменить обработчик кликов по умолчанию тем, который комментирует '.preventDefault()'? Например: '$ ('# adminTabs a'). Click (function (e) { // e.preventDefault(); $ (this) .tab ('show'); })' –