Javascript 如何使用angular.js在锚点标记内设置上一个状态

Javascript 如何使用angular.js在锚点标记内设置上一个状态,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,导航菜单时,我需要在锚定标记内设置上一个状态。这是我的密码: <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li ui-sref-active="active"><a ui-sref=".profile">College Profile</a></li> <li ui

导航菜单时,我需要在锚定标记内设置上一个状态。这是我的密码:

<div id="navbar" class="navbar-collapse collapse">
    <ul class="nav navbar-nav">
        <li ui-sref-active="active"><a ui-sref=".profile">College Profile</a></li>
        <li ui-sref-active="active"><a ui-sref=".stream">College stream</a></li>
        <li ui-sref-active="active"><a ui-sref=".dept">College Department</a></li>
        <li class="dropdown " ui-sref-active="active">
            <a ui-sref="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Resource Management <span class="caret"></span></a>
            <ul class="dropdown-menu">
                <li><a ui-sref="#">Add User Role</a></li>
                <li><a ui-sref="#">Add Course</a></li>
                <li><a ui-sref="#">Add Section</a></li>
                <li><a ui-sref="#">Add Session</a></li>
                <li><a ui-sref="#">Add Semester</a></li>
                <li><a ui-sref="#">Add Unit</a></li>
            </ul>
        </li>
        <li ui-sref-active="active"><a ui-sref=".usermanagement">User Management</a></li>
        <li ui-sref-active="active"><a ui-sref=".role">User Role</a></li>
    </ul>
</div>

ui路由器在转换后不会跟踪上一个状态,但当状态更改时,$stateChangeSuccess事件将在$rootScope上广播

您应该能够从您要离开的状态捕获该事件的先前状态:

app.run(['$rootScope',function($rootScope)
{  
  $rootScope.previousState;
    $rootScope.currentState;
        $rootScope.$on('$stateChangeSuccess', function(ev, to, toParams, from, fromParams) {
            $rootScope.previousState = from.name;
            $rootScope.currentState = to.name;
            console.log('Previous state:'+$rootScope.previousState)
            console.log('Current state:'+$rootScope.currentState)
        });
}]);

我将在此处添加它。您可以在任何地方添加它,因为先前和当前状态属性已添加到$rootScope。。。顺便说一下,AngularJS和UI.Router能够管理浏览器历史记录,因此您可以尝试使用简单的history.back。您已经在app.config中声明了您的状态,并粘贴了上述代码
app.run(['$rootScope',function($rootScope)
{  
  $rootScope.previousState;
    $rootScope.currentState;
        $rootScope.$on('$stateChangeSuccess', function(ev, to, toParams, from, fromParams) {
            $rootScope.previousState = from.name;
            $rootScope.currentState = to.name;
            console.log('Previous state:'+$rootScope.previousState)
            console.log('Current state:'+$rootScope.currentState)
        });
}]);