首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导航到Ionic-V1中的新页面

导航到Ionic-V1中的新页面
EN

Stack Overflow用户
提问于 2017-08-09 09:33:37
回答 1查看 700关注 0票数 2

我目前正在使用Ionic v1进行一个项目。我在项目中有多个用户类型,其中每个用户类型都必须根据他们的时间被重定向到不同的页面。我无法做到这一点。这是我的代码:

app.js:

代码语言:javascript
复制
.state('tab.login', {
url: '/login',
views: {
  'tab-login': {
    templateUrl: 'templates/tab-login.html',
    controller: 'LoginCtrl'
  }
 }
})
.state('guest.home' , {
  url: '/guesthome',
  views: {
    'guest-home': {
      templateUrl: 'templates/guest-home.html',
      controller: 'GuestCtrl'
    }
  }
})

.state('agent.home' , {
  url: '/agenthome',
  views: {
    'agent-home': {
      templateUrl: 'templates/agent-home.html',
      controller: 'AgentCtrl'
    }
  }
})

controller.js:

代码语言:javascript
复制
.controller('LoginCtrl', function($scope, $state) {
  $scope.userLogin = function(email, password) {
  Backendless.UserService.login( $scope.email, $scope.password, true )
  .then( $scope.userLoggedIn )
  .catch ( $scope.gotError )
}

$scope.userLoggedIn = function( user ) {
console.log("User has logged in");
if ( user.user_type === "g" )
  $state.go('guest.home');
else
  $state.go('agent.home');
}

$scope.gotError = function( err ) {
console.log( "error message - " + err.message );
    console.log( "error code - " + err.statusCode );
}

})

标签-login.html:

代码语言:javascript
复制
<ion-content class="padding" ng-controller="LoginCtrl">
<div class="list">
  <label class="item item-input item-floating-label">
    <span class="input-label">Email</span>
    <input type="text" placeholder="Email" ng-model="email">
  </label>
  <label class="item item-input item-floating-label">
    <span class="input-label">Password</span>
    <input type="password" placeholder="Password" ng-model="password">
  </label>
</div>
<div class="text-center">
  <button class="button button-positive" ng-click="userLogin()">
    Login
  </button>
</div>
</ion-content>

我搞错了,error message - Could not resolve 'guest.home' from state 'tab.login',我做错什么了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-22 17:09:22

我认为这个问题可能与这样一个事实有关:你在你的州名上使用了点,而没有定义一个抽象的状态来容纳孩子。

尝试一下没有点(“guesthome”可能?),或者改变你的路由,让它有抽象的状态。

下面是一个例子:

代码语言:javascript
复制
        $stateProvider
        .state('setup', {
            url: '/setup',
            abstract: true,
            templateUrl: 'js/views/setupView.html',
            controller: 'SetupController'
        })
        .state('setup.bluetooth', {
            url: '/bluetooth',
            views: {
                'setupContent': {
                    templateUrl: 'js/views/bluetoothSetupView.html',
                    controller: 'BluetoothSetupController'
                }
            }
        })
        .state('setup.truck', {
            url: '/truck',
            views: {
                'setupContent': {
                    templateUrl: 'js/views/truckSetupView.html',
                    controller: 'TruckSetupController'
                }
            }
        })
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45586852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档