我在我的抽象状态的控制器中使用$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
$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
,但即使它没有帮助。任何帮助都非常感谢。提前谢谢。