2016-07-07 134 views
0

THIS IS MY登錄控制器離子State.go不工作

app.controller('lgctrl', function ($scope, $state) { 
    $scope.open = function() { 
     $state.go('home-menu'); 
    } 
}); 

THIS IS MY App.js

$stateProvider.state('login', { 
    url: '/login', 
    templateUrl: 'templates/login.html', 
    controller: 'lgctrl' 
}); 
$stateProvider.state('app', { 
    url: '/app', 
    abstract: true, 
    templateUrl: 'templates/menu.html', 
    controller: 'AppCtrl' 
}); 
$stateProvider.state('app.home-menu', { 
    url: '/home-menu', 
    views: { 
     'menuContent': { 
      templateUrl: "templates/home-menu.html" 
     } 
    } 
}); 

$ urlRouterProvider.otherwise( '/登錄');

THIS IS MY的login.html

<ion-view view-title="Login"> 
    <ion-content> 
     <div class="list"> 
      <label class="item item-input item-floating-label"> 
       <span class="input-label">Email</span> 
       <input type="text" placeholder="Email"> 
      </label> 
      <label class="item item-input item-floating-label"> 
       <span class="input-label">Password</span> 
       <input type="Password" placeholder="Password"> 
      </label> 
     </div> 
     <button ng-click="open()" class="button button-block button-positive"> 
      Login 
     </button > 
     Don't have an Account? <a href = "#/signup">Sign-Up</a> | <a href="" >FAQ</a> 
    </ion-content> 
</ion-view> 

,當我點擊登錄按鈕,我得到這個錯誤我state.go不是重定向到主菜單頁面

Error: Could not resolve 'home-menu' from state 'login' 
    at Object.transitionTo (ionic.bundle.js:52013) 
    at Object.go (ionic.bundle.js:51946) 
    at Scope.$scope.open (Controller.js:38) 
    at fn (eval at compile (ionic.bundle.js:27638), <anonymous>:4:203) 
    at ionic.bundle.js:65427 
    at Scope.$eval (ionic.bundle.js:30395) 
    at Scope.$apply (ionic.bundle.js:30495) 
    at HTMLButtonElement.<anonymous> (ionic.bundle.js:65426) 
    at defaultHandlerWrapper (ionic.bundle.js:16787) 
    at HTMLButtonElement.eventHandler (ionic.bundle.js:16775) 

回答

1

在你的路線配置,已經定義了你的狀態爲「app.home菜單」,但嘗試訪問它在控制器的「家庭菜單」。因此,UI路由器找不到「家菜單」匹配狀態定義

嘗試$state.go('app.home-menu');代替

+0

請編輯更多的信息。僅限代碼和「嘗試這個」的答案是不鼓勵的,因爲它們不包含可搜索的內容,也不解釋爲什麼有人應該「嘗試這個」。我們在這裏努力成爲知識的資源。 – abarisone

+0

謝謝,先生!它的工作現在! –

+0

我想添加這個側面菜單的標籤?我該怎麼辦 ? –

0

試更新下面的代碼。

$stateProvider 
    .state('login', { 
       url: '/login', 
       templateUrl: 'templates/login.html', 
       controller : 'lgctrl' 
      }); 

    .state('app', { 
      url: '/app', 
      abstract: true, 
      templateUrl: 'templates/menu.html', 
      controller: 'AppCtrl' 
       }); 

    .state('app.home-menu', { 
       url: '/home-menu', 
       views: { 
        'menuContent' :{ 
        templateUrl: "templates/home-menu.html" 
        } 
       } 
       }); 
$urlRouterProvider.otherwise('/login'); 
+0

聽起來是不是有什麼區別? –

+0

我已經多次放置了$ stateProvider,試試這個並告訴我你得到了什麼。如果沒有,那麼讓我們想一想吧 –

+0

實際上,如果你試圖從每個狀態中刪除狀態提供者,那麼你需要在每個狀態後刪除冒號...... –