Javascript 如果用户想要访问angular meteor中需要登录验证的特定页面,如何重定向到404页面

Javascript 如果用户想要访问angular meteor中需要登录验证的特定页面,如何重定向到404页面,javascript,angularjs,redirect,meteor,angular-meteor,Javascript,Angularjs,Redirect,Meteor,Angular Meteor,我用的是角流星 我有一个需要登录验证的页面 e、 g: 我想将用户重定向到:如果他没有登录并试图访问该受限页面 这是我的路由文件: app.config(function($stateProvider, $urlRouterProvider, $locationProvider) { $urlRouterProvider.otherwise("/"); $stateProvider .state('verifyPhone', { url: "/verify

我用的是角流星

我有一个需要登录验证的页面

e、 g:

我想将用户重定向到:如果他没有登录并试图访问该受限页面

这是我的路由文件:

app.config(function($stateProvider, $urlRouterProvider, $locationProvider) {

    $urlRouterProvider.otherwise("/");

    $stateProvider
    .state('verifyPhone', {
      url: "/verifyPhone",
      templateUrl: "client/www/views/verifyPhone.html",
      controller: "SMSVerificationController"
    });

    $locationProvider.html5Mode(true);
});
如何在此处设置重定向?

您可以使用该对象声明对的依赖关系:

app.config(function($stateProvider, $urlRouterProvider, $locationProvider) {
    $urlRouterProvider.otherwise("/");
    $stateProvider
    .state('verifyPhone', {
      url: "/verifyPhone",
      templateUrl: "client/www/views/verifyPhone.html",
      controller: "SMSVerificationController",
      resolve: {
        "currentUser": function ($meteor) {
          return $meteor.requireUser();
        }
      }
    });
    $locationProvider.html5Mode(true);
});

之后,您需要捕获
requireUser
promise错误,并将用户重定向到404页面:

app.run(function ($rootScope, $state) {
  $rootScope.$on('$stateChangeError', function (event, toState, toParams, fromState, fromParams, error) {
    if (error === 'AUTH_REQUIRED') $state.go('404');
  });
});