Angular - $ location.path('/ login')。replace()即使在$ scope之后也不起作用。$ apply()

时间:2016-05-13 04:43:01

标签: javascript angularjs angular-ui-router

以下是我的代码 HTML

<div class="buttons ">
    <div class="logout" ></div>
    <div class="tip" >Logout</div>
</div>

路线配置

 var app = angular.module("myapp", ['ngRoute']);
app.config(['$routeProvider', function($routeProvider) {
    $routeProvider.when('/login', {
        templateUrl: 'login.html',
        controller: 'loginController'
    }).when('/main', {
        templateUrl: 'main.html',
        controller: 'mainController'
    }).otherwise({redirectTo: '/login'});
}]);

在控制器:

 $scope.logout = function(){
    $location.path('/login').replace();
    $scope.$apply();
}
$('#logout').parent().click(function(){
    $scope.logout();
});
$('.logout').click(function(){
    $scope.logout();
});

虽然我的位置在网址级别发生了变化,但即使在使用 $ scope。$ apply()之后,我的UI也无法呈现。它期待 reload()。 我也试过

$scope.logout = function(){
    $scope.$apply(function() {
        $location.path('/login').replace();
    });
}

即使我使用 ng-click =“logout()”相同的行为。没有UI呈现。

任何人都可以帮我解决这个问题吗?

0 个答案:

没有答案