我在 Angular js 中有两个控制器。
- NavCtrl控制导航栏并根据需要显示注销按钮
- AuthCtrl负责认证和设置本地存储
我面临的问题是在设置令牌并在两个控制器中检索相同的令牌时一切正常。
但是当我进行身份验证时,我需要重新加载页面以查看 NavCtrl 中的更改,因为它在页面呈现时获取值。当有login
或logout
请求相应地呈现更改时,有什么方法可以将通知传递给 NavCtrl?
.controller 'AuthCtrl',($scope,User)->
$scope.login = ()->
User.auth $scope.username,$scope.password
return
return
.controller 'NavCtrl',($scope,User,$window)->
$scope.is_authenticated = $window.localStorage.getItem "authFlag"
console.log $window.localStorage.getItem "token"
console.log $window.localStorage.getItem "authFlag"
$scope.logout = ()->
User.logout()
$scope.is_authenticated = $window.localStorage.getItem "authFlag"
return
User
是我定义的工厂,authFlag
是bool
存储身份验证状态的工厂。基本上我想听听在authFlag
另外,如果可能的话,请评论这是否是最佳做法,或者我做错了什么。