Javascript 开始时两个页面之间的角度JS路由

Javascript 开始时两个页面之间的角度JS路由,javascript,angularjs,angularjs-routing,Javascript,Angularjs,Angularjs Routing,我遇到的情况是,我想将intranet用户路由到默认的起始页(如果他们以前使用过该应用程序),或者如果他们以前没有使用过该应用程序,则将他们转到“如何使用”/“教程”页 用户标识是已知的,我们有一个针对用户标识的标志,因此我可以判断用户以前是否使用过该应用程序。当他们遵循教程中的链接时。教程中的控制器通过ajax调用设置并保持该标志 我基本上希望能够做到的是: angular.module('uiApp', ['meModule']) .config(['$routeProvider', '

我遇到的情况是,我想将intranet用户路由到默认的起始页(如果他们以前使用过该应用程序),或者如果他们以前没有使用过该应用程序,则将他们转到“如何使用”/“教程”页

用户标识是已知的,我们有一个针对用户标识的标志,因此我可以判断用户以前是否使用过该应用程序。当他们遵循教程中的链接时。教程中的控制器通过ajax调用设置并保持该标志

我基本上希望能够做到的是:

angular.module('uiApp', ['meModule'])
  .config(['$routeProvider', 'me', function($routeProvider, me)) {
    $routeProvider
      .when('/home', {
         templateUrl: '/views/home.html',
         controller: 'homeCtrl',
         tab: 'home'
      }) 
      .when(' ... ', {
        ... other routes ...
      }) 
      .when('/tutorial', {
         templateUrl: '/views/tutorial.html',
         controller: 'tutorialCtrl'
      }) 
      .otherwise({
        redirectTo: (me.isNew ? '/tutorial' : '/home')
      }); 
    }
  }])
  .run() {
    ..  the run code here
  }
因此,基本上,我们的想法是,浏览intranet.company.com/with的浏览器将始终处于其他状态,对于现有用户,应该将其带到“/home”,但对于第一次浏览的用户,应该将其带到“/tutorial”

问题是,由于未知的提供者:messages,我似乎无法传入返回用户信息的模块,并且无法实例化模块uiApp

我不确定如何在.run中实现这种路由情况 节


有人能让我转过身来,给我指出正确的方向吗?

我在我的一个应用程序中做了类似的事情,但是,如果用户试图访问需要身份验证的页面,就会发生这种情况。如果他们没有经过身份验证,我会将他们发送到登录屏幕。在你的/home controller上,如果他们是新的,你可以将他们发送到/tutorial。这样行吗k?是的-这是我最初考虑的事情,将重定向添加到控制器代码中,但随后我开始思考是否有可能提供一种将所有路由逻辑保持在一起的方法,使发生的事情更清楚。这样其他开发人员/支持工程师就可以一目了然地看到这一切,而不必进行搜索h各种控制器来确定发生了什么。这是非常有意义的。我也想知道这一点。如果你想完全控制用户可以和应该去的地方,你可以使用$RouteChangeStart事件。在run方法中,你不能只使用定位服务来指向你想要的视图吗?是的,这是可能的-构建“gothca”如果您没有对if!(“/users'| |'/home'| |'/tutorial'| |'…[要直接路由到的所有其他条目]…)&&me.isNew){$location.redirectTo(“/tutorial”)}之类的内容进行修改,那么您就不知道请求的路由是否会得到处理-它可以工作,但它凌乱,不是很干,也不一定使它更容易跟随。但它是一个很好的方向盘,谢谢。