如何在更改视图时保持 Bootstrap 面板 expanded/collapsed

How to keep Bootstrap panel expanded/collapsed when changing view

我有 3 个 Bootstrap 面板,当它们的 headers 被点击时 expand/collapse。 但是,当更改为另一个路线 ID 时(例如 :id=CarModel1id=CarModel2/cars/details/:id 作为路线),我想保持它们的状态在用户乱动面板后的前一个id中,以便用户在更改视图时可以立即比较不同的细节。 如何保持面板状态?请记住,我使用的是 ngRoute 而不是 ui-Router.

示例面板:

<div id="details">
    <div class="panel-heading detailsPanel">
        <a data-toggle="collapse" data-parent="#details" data-target="#collapseDetailsPanel">
            <h4>Additional Details</h4>
        </a>
    </div>
    <div id="collapseDetailsPanel" class="panel-collapse collapse">
        <div class="panel-body">
            <div>Lorem Ipsum</div>
        </div>
    </div>
</div>

设法通过调整 solution found here 并使用 sessionStorage 而不是 $.cookie 来做到这一点。

    $("#details").on('shown.bs.collapse', function() {
        var activeDetails = $("#details .in").attr('id');
        sessionStorage.setItem('activeDetailsGroup', activeDetails);
    });
    $("#details").on('hidden.bs.collapse', function() {
        sessionStorage.setItem('activeDetailsGroup', "inactive");
    });
    var lastDetails = sessionStorage.getItem('activeDetailsGroup');
    if (lastDetails !== "inactive") {
        //remove default collapse settings
        $("#details .panel-collapse").removeClass('in');
        //show the account_last visible group
        $("#" + lastDetails).addClass("in");
    }