angularjs路径改变不起作用

时间:2013-08-15 00:51:32

标签: angularjs angular-routing

我的index.html文件中有一个导航栏区域,其余内容位于ng-view内部的部分内容中。在导航栏中,它显示用户的用户名并具有注销链接。单击该链接会注销用户,我想将它们重定向回登录页面。

这是我在navBar控制器中的注销方法:

 $scope.logOut = function () {
    console.log('logging out');
    StackmobService.logout();
    $location.path('/logout');
    $scope.currentUser='';
};

我的路由器如下:

$routeProvider.
    when('/register', {templateUrl: 'partials/register.html',   controller: 'LoginCtrl'}).
    when('/login', {templateUrl: 'partials/login.html',   controller: 'LoginCtrl'}).
    when('/home', {templateUrl: 'partials/home.html',   controller: 'LoginCtrl'}).
    when('/events', {templateUrl: 'partials/events.html',   controller: 'EventCtrl'}).
    when('/logout', {templateUrl: 'partials/register.html',   controller: 'LoginCtrl'}).
    otherwise({redirectTo: '/home'});

这是我的index.html文件的正文部分:

<div class="container">

    <div class="navbar" ng-controller="NavBarCtrl">
        <a class="navbar-brand" href="#">spreevent</a>
        <ul class="nav navbar-nav">
            <li class="active"><a href="#">Home</a></li>
            <li><a href="#">Link</a></li>
        </ul>
        <p class="navbar-text pull-right" ng-show="currentUser.username">
            Welcome {{currentUser.username}}
            <a href="#"  ng-click="logOut()">Logout</a>
        </p>

    </div>

    <ng-view></ng-view>
</div>

知道为什么不改变?

1 个答案:

答案 0 :(得分:1)

如上述评论所述,请使用

<a href="" ng-click="logOut()">Logout</a>

而不是

<a href="#" ....