我有一个处理导航栏(用户工作人员等)的控制器,它包含了我代码中的所有其他控制器。
<div class="container" ng-controller="wrapCtrl">
... navbar...
<div ng-view></div>
</div>
基本上我想在整个脚本中保持导航栏的顶部,它将包含视图链接并处理一些与用户相关的功能。这给我带来了很多麻烦,因为其他一切(登录,仪表板)等都有自己的控制器。与其他控制器同步更新导航栏是非常有问题的。现在我正在努力使用在wrapCtrl中处理的logout函数。注销功能只需删除令牌,并使用$ location.path('/ login')将用户重定向到登录页面。问题是,当位置更改在父控制器中触发时(是wrapCtrl),子控制器(它是仪表板控制器)在实际重定向之前重新初始化。由于用户在位置更改期间已注销,因此重新初始化会导致仪表板控制器中的所有功能生气。我不认为这是必要的,但如果我不这样做,我会受到抨击,所以这里是退出功能
$scope.logout = function logout() {
if (AuthenticationService.isLogged) {
localStorageService.remove('token');
UserInfoService.setUsrName("");
$location.path("/login");
}
}
这应该像现在这样有问题吗?或者这(嵌套控制器?)不是处理我情况的正确方法?我知道ui-router。但我想知道这是否可以在不使用其他模块的情况下解决。