2017-08-09 82 views
2

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

app.js:

.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:

.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:

<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'我做错了什么?

回答

0

我相信这个问题可能与您在状态名称上使用点而不定义抽象状态以容纳子项的事实有关。

给它一个没有点('guesthome'也许?),或改变你的路由具有抽象的状态。

下面是一个例子:

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