在一个状态下设置多个控制器,IONIC

时间:2016-09-07 03:24:08

标签: angularjs ionic-framework routes

我想检查是否有用户登录,以便重定向到另一个页面,如果没有用户,我想重定向到主页。主页有一个名为storeCtrl的控制器。

我试过了:

    .state('homePage', 
    {
      url: '/homePage',
      templateUrl: 'templates/homePage/homePage.html',
      controller:'storeCtrl',
       function ($localStorage,$state) {
        if ($localStorage.user) {
          $state.go('tabs.profile');
          } else {
            $state.go('homePage');
          }
      }

})

但它不起作用。我也尝试了这个:

    .state('homePage', 
    {
      url: '/homePage',
      templateUrl: 'templates/homePage/homePage.html',
      controller:
       function ($localStorage,$state) {
        if ($localStorage.user) {
          $state.go('tabs.profile');
          } else {
            $state.go('homePage'),
            controller:storeCtrl

          }
      }

})

但这也行不通。

1 个答案:

答案 0 :(得分:0)

而不是把它放在状态。尝试在 app.run

中添加此内容
app.run(function($ionicPlatform,$state,$rootScope,$localStorage) {
  $ionicPlatform.ready(function() {
     //your code
  })
      $rootScope.$on('$stateChangeStart', function (event,next, nextParams, fromState,fromParams) {
      var nextScreen=next.name;
      if (nextScreen!="homePage" && $localStorage.user===undefined) {
        event.preventDefault();
        $state.go('homePage');
        return;
      } 
    });
})