Bootstrap侧边栏导航栏在刷新后保存打开的选项卡

时间:2017-03-21 12:55:20

标签: html angularjs twitter-bootstrap

我在我的bootstrap网站上有一个使用bootstrap css类的侧边菜单:

<div class="page-sidebar navbar-collapse collapse sidebar-nav">

<ul>
<li>
..
</li>
</ul>
</div>

如果用户单击选项卡,并且页面刷新,如何由用户保存打开的选项卡?任何想法?

1 个答案:

答案 0 :(得分:2)

  1. 如果你正在使用angular ui路由器,你可以使用stateparam,如果没有其他两个选项

  2. url params,

  3. localstorage,
  4. 第二点

        function getParameterByName(name, url) {
        if (!url) {
          url = window.location.href;
        }
        name = name.replace(/[\[\]]/g, "\\$&");
        var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
            results = regex.exec(url);
        if (!results) return null;
        if (!results[2]) return '';
        return decodeURIComponent(results[2].replace(/\+/g, " "));
    }
    
    
     url with param page ?tab=home
    $scope.tab = getParameterByName('tab'); // this is called in the controller if the page is reloaded
    

    <强> ###编辑### 然后将您的链接添加到链接

    <li ng-class="active: tab === 'home' href="someurl/?tab=home"></li>
    <li ng-class="active: tab === 'about' href="someurl/?tab=about"></li>
    

    第三个选项 你可以添加带功能的ng-click

    $scope.setTab = function(tab){
        $window.localStorage.setItem("tab", tab);
    }
    

    您可以通过

    获取标签
    $window.localStorage.getItem("tab");
    

    如果标签值为空,您必须处理null

    您可以使用sessionStorage  这是暂时的

     set value 
     sessionStorage.tab = "home"
      get value
      $scope.tab = sessionStorage.tab