I am trying to set my login page as initial state. When user clicks on register user, I am doing $state.go (in controller) to register page from where user should be able to come back to login page.
angular.module('starter', ['ionic', 'starter.controllers','ui.router']).config(['$stateProvider','$urlRouterProvider',function($stateProvider, $urlRouterProvider).state('login',{
url:"/login",
templateUrl:'templates/login.html',
controller:'LoginCtrl'
})
.state('login.registerUser',{
url:"/registerUser",
views: {
'menuContent' :{
templateUrl:'templates/registerUser.html',
controller:'registerCtrl'
}
}
})
controller
.controller('LoginCtrl', ['$scope', 'Auth', '$state', '$ionicPlatform','SessionService', function($scope, Auth, $state, $ionicPlatform, SessionService) {
$ionicPlatform.ready(function() {
window.scope = $scope;
$scope.credentials = {username: "", password: "", remember: ""};
$scope.userData = {username: "", id: ""};
var utils = {
createNewUser:function(){
console.log('here');//I CAN SEE THIS
$state.go('login.registerUser');//NOTHIN HAPPENS
}
};
$scope.goToRegistration = utils.createNewUser;
});
}])
But it is not doing anything. Please Help
Your syntax is a little messed up. Try this:
angular.module('starter', ['ionic', 'starter.controllers','ui.router'])
.config(['$stateProvider','$urlRouterProvider',function($stateProvider, $urlRouterProvider){
$stateProvider
.state('login',{
url:"/login",
templateUrl:'templates/login.html',
controller:'LoginCtrl'
})
.state('login.registerUser',{
url:"/registerUser",
views: {
'menuContent' :{
templateUrl:'templates/registerUser.html',
controller:'registerCtrl'
}
}
})
});
I am not sure about ionic but in general angular app when you define a child state you need to have a nested ui-view in your page or use a named view, View Names can be Relative or Absolute Names check this from docs and this plunkr
<p>login</p><div ui-view></div> //login template
<p>registerUser</p> //registerUser template
for nested ui view