2015-11-03 35 views
0

這裏的內容是plunker鏈接代碼http://plnkr.co/edit/JwM8t3oNepP3tE1nUXlM?p=info

controller.js

if(($scope.login==='Admin')&&($scope.password==='admin')) 
{ 
    $state.go('login.home'); 
} 

的script.js

var DailyUsageApp = angular.module('DailyUsageApp', ['ui.router']); 
DailyUsageApp.config(function($stateProvider, $locationProvider, $urlRouterProvider) { 
    $urlRouterProvider.otherwise('/login'); 
    $stateProvider.state('login', { 
     url: '/login', 
     templateUrl: "login.html", 
     controller: 'authController' 
    }) 
    .state('login.home', { 
     url: '/home', 
     templateUrl: "home.html", 
     controller: 'homeController' 
    }); 
}); 

回答

4

你的代碼不工作的原因是因爲你正在創建分層狀態,這並不意味着分層。通過命名你的州login.home,你的意思是homelogin的孩子。這意味着,當你嘗試和go('login.home') ui路由器試圖呈現登錄狀態以及家庭狀態作爲一個孩子。這意味着,要使您的當前版式起作用,登錄模板必須包含自己的ui-view標籤。最好的辦法來解決這個問題是簡單的狀態重命名爲剛home,然後用$state.go('home');

1

an updated plunker

最簡單的辦法就是使狀態login.home嵌套login下。

//.state('login.home', { 
.state('home', { 
    url: '/home', 
    templateUrl: "home.html", 
    controller: 'homeController' 
}); 

也有其他的解決方案,像login.home創建目標的login這樣的內部:

<div ui-view=""></div 

但通常,我們不這樣做。只需登錄,然後導航到其他一些州級別...

相關問題