我正在使用cordova开发带离子框架的移动应用程序。我使用$ http.post方法发送请求&以json格式接收响应。在成功的活动中,我想导航到下一页。我的代码是这样的:
.controller('Intro', function($scope, $http, $ionicSlideBoxDelegate, $state, $timeout, $ionicLoading, $ionicPopup) {
$scope.login = function(user) {
var userName = user.username;
var passWord = user.password;
$ionicLoading.show({
template: 'Logging in...'
});
$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
$http.post(base_url + "get/memberLogin.php?username=" + userName + "&password=" + passWord + "&tempKey=XHJJUQWERgfrbbbbokaw1222344", {}).success(function(data, status, headers, config) {
if (data.alert === 'SUCCESS') {
$timeout(function() {
$ionicLoading.show({
template: 'Success'
});
}, 1600);
var UserData = data.userdata;
var Username = UserData.personal_information.first_name + " " + UserData.personal_information.last_name;
var Email = UserData.username;
var LastLogin = new Date(UserData.last_visited * 1000);
$scope.users = [{
username: Username,
email: Email,
location: true,
id: null,
avatar: 'img/men.jpg',
enabled: 'true',
lastLogin: LastLogin
}];
$timeout(function() { // it navigates you to next slide to be shown
$ionicLoading.hide();
$state.href('templates/dashboard.html'); // getting problem here.
}, 2000);
}
});
问题是我尝试$state.href('templates/dashboard.html');
,但它没有导航到。甚至我试过$state.go('templates/dashboard.html');
& $state.go('^.dashboard');
与绝对的一样,但它仍然没有用。哪个是工作的?
我在控制台上也没有出现任何错误......问题出在哪里?
更新了路线配置
.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('router', {
url: "/route",
abstract: true,
templateUrl: "templates/side-menu-left.html"
})
.state('router.dashboard', {
url: "/dashboard",
abstract: true,
views: {
'menuContent' :{
templateUrl: "templates/dashboard.html"
}
}
})
.state('router.dashboard.home', {
url: "/home",
views: {
'home-tab' :{
templateUrl: "templates/home.html"
}
}
})
....so on.....
答案 0 :(得分:0)
导航由路线驱动。
例如,在您的情况下,您可以配置如下路线:
orderStatusApp.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('Dashboard', {
url: "/Dashboard",
templateUrl: "templates/dashboard.html"
});
});
然后你可以使用$ state或$ location。例如,在这种情况下,您可以使用$ location这样的位置:
$location.path('Dashboard');
或者您也可以尝试
$state.transitionTo('Dashboard');