$ state.go不在Ionic工作

时间:2016-02-06 19:07:36

标签: javascript angularjs cordova ionic-framework ionic-view

我在我的抽象状态的控制器中使用$state.go并且它不起作用。我正在使用$ ionicPopup并单击我要导航到另一个状态的按钮。它在控制台中没有显示错误。这是我的代码。

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

    .state('app', {
    url: '/app',
    abstract: true,
    templateUrl: 'templates/menu.html',
    controller: 'AppCtrl'
  })

  .state('app.contacts', {
    url: '/contacts',
    views: {
      'menuContent': {
        templateUrl: 'templates/contacts.html',
        controller: 'ContactsCtrl'
      }
    }
  })

  .state('app.browse', {
      url: '/browse',
      views: {
        'menuContent': {
          templateUrl: 'templates/browse.html',
          controller: 'BrowseCtrl'
        }
      }
    })

  .state('app.signup', {
      url: '/signup',
      views: {
        'signup': {
          templateUrl: 'templates/signup.html',
          controller: 'signupCtrl'
        }
      }
    })

  .state('app.playlists', {
    url: '/playlists',
    views: {
      'menuContent': {
        templateUrl: 'templates/playlists.html',
        controller: 'PlaylistsCtrl'
      }
    }
  })

  .state('app.single', {
    url: '/playlists/:playlistId',
    views: {
      'menuContent': {
        templateUrl: 'templates/playlist.html',
        controller: 'PlaylistCtrl'
      }
    }
  });

  // if none of the above states are matched, use this as the fallback
  $urlRouterProvider.otherwise('/app/browse');
});

这是我在AppCtrl

中的Javascript代码
$scope.showCartPopup = function(){
    $scope.cartItems = $localStorage.cart;
    $scope.costSum = 0;
    $scope.cartItems.forEach(function(element, index){
      $scope.costSum += Number(element.price);
    });
    $scope.costSum = $scope.costSum.toFixed(2);
    console.log($scope.cartItems);
    var templateString = "a long template string here";
    $ionicPopup.show({
      title: 'Your Cart Items',
      template: templateString,
      scope : $scope,
      buttons: [{
        text: 'Continue'
      },{
        text: 'Checkout',
        type: 'button-assertive',
        onTap: function(e){
          $timeout(function() { $state.go("app.signup") });
          //return $q.reject("Rejection message!");
        }
      }]
    }).then(function(res){
      if(res == 'signup'){
        console.log(res);
        $timeout(function() { $state.go("app.signup") });
      }
    });

$timeout根本不工作时,我使用$state.go,但即使它没有帮助。任何帮助都非常感谢。提前谢谢。

0 个答案:

没有答案