2015-07-19 60 views
1

我使用Yeoman(angular-fullstack)創建了一個項目。現在我想知道如何更改/將主視圖設置爲login.html。所以通常當您啓動應用程序時,您首先會看到您可以選擇登錄或註冊的主視圖。當應用程序啓動頁開始直接上的login.html如何使用Yeoman和Angular Fullstack更改/設置主視圖

回答

1
在位於 client\app\app.js您app.js文件

我要的是,在角度配置添加以下內容:

$stateProvider 
    .run(function ($state) { 
    $state.go('login'); 
    }); 

所以它看起來應該像:

.config(function ($stateProvider, $urlRouterProvider, $locationProvider, $httpProvider) { 
    $urlRouterProvider 
     .otherwise('/'); 

    $locationProvider.html5Mode(true); 
    $httpProvider.interceptors.push('authInterceptor'); 
    $stateProvider 
     .run(function ($state) { 
     $state.go('login'); 
     }); 
    }) 
+0

我加入你的代碼位,但其不工作... – GY22

+0

這假設你在設置項目時選擇了ui-router作爲你的路由器。您是否使用ngRouter? –

+0

我選擇ng路線 – GY22

1

我知道這已經在這裏了一段時間,你可能已經有了一個很好的解決方案,但我最近在看這自己,看到一對夫婦的選擇。

一個,裏面app.js您可以添加在$ urlRouterProvider下面的代碼片段:

.when('/', '/login') 

讓您完整的方法是這樣的:

.config(function ($stateProvider, $urlRouterProvider, $locationProvider, $httpProvider) { 
    $urlRouterProvider 
     .when('/', '/login') 

    $locationProvider.html5Mode(true); 
    $httpProvider.interceptors.push('authInterceptor'); 
}) 

這會強迫任何人去你的基本頁面url直接登錄,除非他們提供完整的路線到另一個頁面。然而,如果你打算仍然使用main.html中,您將需要進入客戶端/應用/主/ main.js並更改默認路由:

.state('main', { 
    url: '/main', 
    templateUrl: 'app/main/main.html', 
    controller: 'MainCtrl' 
}); 

所以主要是通過附加可達/主要的網址。

這將我帶到選項2:進入main.js文件並將它的URL切換到'/ main'並進入login.js並將它的網址切換到'/'。然後,任何瀏覽到您的基本頁面的人都會自動進入登錄屏幕,但該網址僅被視爲您的域名,而沒有任何子頁面。

所以客戶端/應用/主/ main.js變爲:

.state('main', { 
    url: '/main', 
    templateUrl: 'app/main/main.html', 
    controller: 'MainCtrl' 
}); 

和客戶端/應用/帳號/ account.js現在包含:

.state('login', { 
    url: '/', 
    templateUrl: 'app/account/login/login.html', 
    controller: 'LoginCtrl' 
}) 
相關問題