我对 AngularJS 完全陌生,我有一个小问题,请注意,我仍处于 AngularJS 开发的最初几周,我仍然不了解所有内容,所以请不要笑。
好的,我有一个身份验证模块,其中包含我调用的服务authService
。在authService
我设置值this.isAuthenticated
以确定用户是否已登录,这是一个简单的示例(我已删除所有内容,因为它工作正常。
this.isAuthenticated = function () {
// i have removed a great deal of code to keep this simple but we use $http and a rest service...
// more code then ...
if (loggedInUser == null) {
return false;
} else {
return true;
}
};
在另一个名为的控制器中,ideasCtrl
我想检查用户是否已登录,并且我希望观察状态是否发生变化,以便我可以采取相应的行动......这是我的一部分ideasCtrl
// please note that authService is correctly injected / referenced
$scope.isAuthenticated = authService.isAuthenticated();
console.log($scope.isAuthenticated);
$scope.$watch('isAuthenticated', function() {
console.log('hey, isAuthenticated has changed!');
});
我将我的应用程序视为公共用户,然后登录(登录表单只是应用程序顶部的一个视图,我在 using 中导入ng-view
)$scope.$watch('isAuthenticated'
......没有被触发、解雇或任何事情。如何广播此内容或确保捕获更改事件。
如果无法提供答案,请随时向我点头以正确的方向进行调查(如主题或开发领域)。我意识到我的代码示例非常糟糕。