初始加载时的事件

时间:2014-08-13 12:24:37

标签: javascript angularjs angular-ui

我正在尝试使用ui-router捕获视图的第一次加载,以便在用户未登录时显示登录屏幕。

但是$stateChangeStart没有在第一次加载时触发,但它在以下路由更改中启动。

$rootScope.$on('$stateChangeStart', function(event){
        event.preventDefault(); 
});

如何捕获初始负载?

2 个答案:

答案 0 :(得分:2)

 .when('/yourRoute', {
    templateUrl: 'partials/yourTemplate.html',
    controller: 'YourCtrl',
    resolve: {
      load: function ($route, ServiceExample) {
          return ServiceExample.start();
      }
    }
  })

您可以使用类似的方法在加载页面之前启动方法。

这里,当您在浏览器中键入/ yourRoute时,将执行start方法。然后将显示该页面。

您可以验证用户是否已登录此方法。

答案 1 :(得分:1)

您可以使用解决方案,并可以捕获用户是否已登录。像这样:

.state('layout',{
    url:'/',
    abstract:true,
            resolve:{
            //Have your logic here to check for login cred and if there is none do a state change
        }
    },
    templateUrl:'startPage/layout',
    controller:'commonController'   
  })