无法使用$ state.go()来改变状态,来自控制器的$ location.path() - Ionic

时间:2017-05-29 14:42:28

标签: javascript angularjs ionic-framework controllers state.go

我是Ionic和AngularJS的新手,并且无法弄清楚为什么这不起作用,我只想检查何时在“主页”标签上,如果用户已输入其卡号,如果没有,则重定向他到适当的页面 这是我的控制器:

.controller('HomeCtrl', function($scope, $state) {
    if (localStorage.getItem("cardId") == "")
      {
        console.log("redirecting to login");
        $state.go('tab.dash');
      }
})

$ state.go似乎什么都不做,但控制台日志正确显示。 我尝试使用$ timeout和$ location.path但没有成功。

以下是我的路线:

  $stateProvider

    .state('tab', {
    url: '/tab',
    abstract: true,
    templateUrl: 'templates/tabs.html'
  })

    .state('tab.home', {
    url: '/home',
    views: {
      'tab-home': {
        templateUrl: 'templates/tab-home.html',
        controller: 'HomeCtrl',
      }
    }
  })

  .state('tab.dash', {
    url: '/dash',
    views: {
      'tab-dash': {
        templateUrl: 'templates/tab-dash.html',
        controller: 'DashCtrl',
      }
    }
  })

  .state('tab.map', {
      url: '/map',
      views: {
        'tab-map': {
          templateUrl: 'templates/tab-map.html',
          controller: 'MapCtrl'
        }
      }
    })

  .state('tab.account', {
    url: '/account',
    views: {
      'tab-account': {
        templateUrl: 'templates/tab-account.html',
        controller: 'AccountCtrl'
      }
    }
  });

      $urlRouterProvider.otherwise('/tab/home');
});

我做错了什么?我只想改变状态......

谢谢:)

0 个答案:

没有答案