2015-07-19 48 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' 
}) 
相关问题