2016-09-26 6 views
1

ページを更新した後でも、現在のタブを有効にします。ブートストラップとAngularJSを使用してindex.htmlにこれを書いていますが、次のコードを使用しました。現在のタブをアクティブにする方法

誰でもこの問題を解決できますか?

<ul role="navigation" class="nav nav-pills" id="MyTab"> 
    <li role="presentation" class="active" data-toggle="tab"> 
    <a href="#active">Active</a> 
    </li> 
    <li role="presentation" data-toggle="tab"> 
    <a href="#list">list</a> 
    </li> 
    <li role="presentation" data-toggle="tab"> 
    <a href="#add">Add</a> 
    </li> 
    <li role="presentation" data-toggle="tab"> 
    <a href="#search">Search</a> 
    </li> 
</ul> 

<script> 
$(document).ready(function(e) { 
    $("a[data-toggle='tab']").on("show.bs.tab", function(e) { 
    localStorage.setItem("activeTab", $(e.target).attr("href")); 
    }); 
    var activeTab = localStorage.getItem("activeTab"); 
    if(activeTab) { 
    $("#myTab a[href='" + activeTab + "']").tab("show"); 
    } 
}); 
</script> 

このJavaScriptを使用してこの機能を試していますが、うまくいかないことを教えてください。

+1

ng-classを使用すると、class activeを追加できます。 – Hmahwish

+0

'それはうまくいません' ...少しの情報はどういうことですか、何を期待していますか、代わりに何を観察しますか、デベロッパーツールコンソールにエラーがあります –

+0

これはなぜangularjsにタグ付けされていますか?そして、もしあなたがangjsを使っているなら、jqueryを避けてみてください。また、どのルータを使用していますか? Ui-routerやng-routerのように? – rahil471

答えて

0

localStorageからアクティブを取得し、スコープ変数に割り当てます。

$scope.activetab=localStorage.getItem('activeTab'); 

activetab値に基づいてアクティブなクラスを設定します。

<li role="presentation" data-toggle="tab" ng-class="{active: activetab == 'list'}"><a href="#list">list</a></li> 
<li role="presentation" data-toggle="tab" ng-class="{active: activetab == 'add'}"><a href="#add">add</a></li> 
<li role="presentation" data-toggle="tab" ng-class="{active: activetab == 'search'}"><a href="#search">search</a></li> 
関連する問題