我尝试使用Ionic从一项活动转移到另一项活动。 我没有任何错误但行动不起作用。
我的状态是:
.config(function($ stateProvider){ $ stateProvider .state('index',{ templateUrl:'index.html', 网址:'/' }) .state('home',{ templateUrl:'templates / welcome.html', 网址:'/ home' }); })
我的控制器是:
.controller('HomeCtrl', function($scope, $state, $http, $location) {
$scope.login = function(user) {
$http.get("http://localhost/app_dev.php/json/login/"+user.username+"/"+user.password)
.then(function(response){
console.log(response.data.status);
if(response.data.status === 200)
{
alert("redirect to main page");
$location.path("/home");
}else if(response.data.status === 403){
alert("Login or password incorrect");
}else{
alert("User not found");
}
});
};
})
当我收到我的Json时,我没有错误,但重定向没有显示
答案 0 :(得分:1)
我认为你几乎把状态和位置混为一谈,我建议保持简单,只使用状态。
尝试注入$ state并使用它,因为我可以看到你有一个定义为“Home”的状态,也许这应该可以解决问题:
$state.go("home");
而不是使用
$location.path
我希望有帮助
答案 1 :(得分:0)
我遇到了与此类似的问题,我所做的就是在我的html模板中将$ event添加到我的登录方法中。
<button ng-click="login(user,$event)"></button>
然后在我的js中我调用了event.preventDefault();
.controller('HomeCtrl', function ($scope, $state, $http, $location) {
$scope.login = function (user, event) {
$http.get("http://localhost/app_dev.php/json/login/" + user.username + "/" + user.password)
.then(function (response) {
console.log(response.data.status);
if (response.data.status === 200) {
event.preventDefault();
alert("redirect to main page");
$state.go("home");
} else if (response.data.status === 403) {
alert("Login or password incorrect");
} else {
alert("User not found");
}
});
};
})
答案 2 :(得分:0)
$ionicHistory.goBack()
应该是最有效的方式。