【问题标题】:Stateprovider $state not working in ionic frameworkStateprovider $state 在离子框架中不起作用
【发布时间】:2026-02-06 05:05:03
【问题描述】:

我正在尝试将我的登录页面设置为初始状态。当用户单击注册用户时,我正在 $state.go(在控制器中)注册页面,用户应该能够从该页面返回登录页面。

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('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;


});

}])

但它什么也没做。 请帮忙

【问题讨论】:

    标签: angularjs ionic-framework angular-ui-router


    【解决方案1】:

    你的语法有点乱。试试这个:

    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'
          }
      }
    
    })
    });
    

    【讨论】:

    • 没什么。我用模态替换了它。
    【解决方案2】:

    我不确定 ionic 但在一般角度应用程序中,当您定义子状态时,您需要在页面中有嵌套的 ui-view 或使用命名视图,视图名称可以是相对名称或绝对名称,请从 @ 检查987654321@ 和这个plunkr

    <p>login</p><div ui-view></div>  //login template
    <p>registerUser</p> //registerUser template
    

    用于嵌套的 ui 视图

    【讨论】: