Reputation: 1282
I have login page . When username and password is correct i want to redirect from login page to HomePage.html page.
Login.html
<ion-view view-title="Login" name="login-view">
<ion-content class="padding">
<div class="list list-inset">
<label class="item item-input">
<input type="text" placeholder="Username" ng-model="data.username">
</label>
<label class="item item-input">
<input type="password" placeholder="Password" ng-model="data.password">
</label>
</div>
<button class="button button-block button-calm" ng-click="login()">Login</button>
</ion-content>
</ion-view>
HomePage.html
<label id="test">test</label>
controller.js
.controller('LoginCtrl', function ($scope, LoginService, $ionicPopup, $state) {
$scope.data = {};
$scope.login = function () {
LoginService.loginUser($scope.data.username, $scope.data.password).success(function (data) {
$state.go('/HomePage'); // This is not working for me
}).error(function (data) {
var alertPopup = $ionicPopup.alert({
title: 'Login failed!',
template: 'Please check your credentials!'
});
});
}
})
Question:
When i try below code
$state.go('/HomePage');
this is not working for me.
I get below exception as below
Error: Could not resolve '/HomePage' from state 'login'
How can i reach homepage.html page from login page.
Any help will be appreciated.
Thanks.
Upvotes: 4
Views: 26883
Reputation: 2148
use this :
$location.path('/HomePage');
Full code:
.controller('LoginCtrl', function ($scope, LoginService, $ionicPopup,$location) {
$scope.data = {};
$scope.login = function () {
LoginService.loginUser($scope.data.username, $scope.data.password).success(function (data) {
$location.path('/HomePage'); // working
}).error(function (data) {
var alertPopup = $ionicPopup.alert({
title: 'Login failed!',
template: 'Please check your credentials!'
});
});
}
})
Upvotes: 11
Reputation: 125
Use state name instead of a path. For example:
$stateProvider
.state('auth', {
url: '/auth',
views: {
'nav_view_start': {
templateUrl: 'templates/auth/auth.html',
controller: 'AuthCtrl'
}
}
})
.state('main', {
url: '/main',
abstract: true,
cache: false,
views: {
'nav_view_start': {
templateUrl: 'templates/main/main.html',
controller: 'MainCtrl'
}
}
});
Use main
instead of /main
.
Upvotes: 3
Reputation: 669
use this :
$state.go('app.HomePage'); //This is worked for me.
My Code:
$scope.Login = function(form){
if(form.$valid) {
$http({
method : 'POST',
url : link,
data : {username : $scope.data.username, password : $scope.data.password,action: 'login'}, //forms user object
headers : {'Content-Type': 'application/x-www-form-urlencoded'}
})
.success(function(data) {
$state.go('app.listings');
});
}
};
Upvotes: 5