猿问

$ locationChangeSuccess和$ stateChangeStart混淆

$ locationChangeSuccess和$ stateChangeStart混淆

我正在尝试使用AngularUI路由器进行一些身份验证。$urlRouter.sync()看起来正是我所需要的。但是,仅当我拦截时可用$locationChangeSuccess。但是当我这样做时,它$state.current.name是空的,而我希望它是当前状态。

到目前为止,这是我的代码:

$rootScope.$on('$locationChangeSuccess', function(event, next, nextParams) {
  event.preventDefault();
  if ($state.current.name === 'login') {
    return userService.isAuthenticated().then(function(response) {
      var authenticated;
      authenticated = response.authenticated;
      return alert(authenticated);
    });
  }});

关于我在做什么错的任何指示?


红颜莎娜
浏览 675回答 2
2回答

哆啦的时光机

如果我正确理解了您的问题,那么好消息就解决了;)角provider模型(包括services和factories)由单例模式驱动。因此,userService在我们的示例中,实例化仅被实例化一次,仅调用一次将调用服务器(在此为$timeout),并且对其进行的任何下一次调用都将返回user局部变量...这有帮助吗?
随时随地看视频慕课网APP

相关分类

AngularJS
我要回答