处理AngularJs中的浏览器后退按钮

时间:2014-04-03 06:33:15

标签: angularjs

我刚刚在我的应用程序中启动了angularJs。在我的index.html页面中,我有一个包含链接的表格和一个侧边栏,默认情况下会显示。当我们点击链接时,它会进入我隐藏侧边栏的摘要屏幕。我在摘要屏幕中有一个链接,它链接回索引页面,我再次显示侧栏。

现在的问题是,当用户点击摘要页面上的链接时,侧边栏会显示在索引页面上,但如果用户点击浏览器上的后退按钮,侧边栏就不会显示..

我正在使用角度ng-show来显示侧边栏。为什么ng-show标签没有根据浏览器后退按钮进行更新,但是在摘要屏幕上没有激活链接?

摘要屏幕中的代码段如下所示:

 <nav class="navbar navbar-default navbar-static-top" role="navigation" style="margin-bottom: 0">
        <div class="navbar-header">
            <a class="navbar-brand" href="index.html">Details</a>
        </div>
    </nav>

详细信息页面中的代码段如下所示:

        <div class="row" ng-controller="StateCtrl">
           <div>
               <div data-ng-view=""></div>
           </div>
            <div class="col-lg-3" ng-show="sidebar.show" id="sidebar" ng-controller="sidebarController">
                <hr/>
                <div class="panel panel-primary">
                    <div class="panel-heading">States</div>

                    <div class="panel-body">
                        <h4>States</h4>
                        <div class="form-group">
                            <select class="form-control" ng-options="state.name for state in states" ng-model="state">
                             </select>
                        </div>
                        <!-- /input-group -->
                        <button class="btn btn-primary" type="submit" ng-click="submit()">Submit</button>
                        <button class="btn btn-default" type="reset" ng-click="reset()">Reset</button>
                </div>
              </div>
            </div>

请告诉我如何处理浏览器后退按钮方案。

1 个答案:

答案 0 :(得分:0)

我通过使用$ rootScope并在两个控制器中设置值来实现此功能。在默认控制器中,该值将设置为true,如果不显示侧栏,我将值设置为false。