根据服务属性覆盖默认状态?

时间:2015-04-17 00:45:03

标签: angularjs angular-ui-router

我的应用程序当然是一个默认状态,当你点击它时它会显示。我希望可能绕过默认状态并导航到另一个状态(代表一个功能),基于属性的存在(我认为将从服务中读取)。我不确定如何处理这个问题。有一些执行点或某些事件,我可以挂钩将用户从默认值重定向?

2 个答案:

答案 0 :(得分:1)

在运行块中,您可以为$ routeChangeSuccess或$ stateChangeSuccess注册一个监听器,具体取决于您是否使用ngRoute或ui-router。一般语法如下:

angular.module('myApp',[]).run(function($rootScope, $state, myService){
  $rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams){
    if(myService.someValue && toState == 'defaultStateName')
      $state.go('otherState');
  })
});

答案 1 :(得分:0)

我现在有一些似乎想要的东西我需要相当简单。由于我在服务上拥有自己的属性,因此我可以将该服务注入控制器以获取默认内容状态。在控制器中,我可以查看酒店并致电' $ state.go'如果必须的话。