如何使用带有Angular Fullstack的Yeoman更改/设置主视图

问题描述 投票:1回答:2

我使用Yeoman(angular-fullstack)创建了一个项目。现在我想知道如何更改/设置login.html的主视图。因此,通常在启动应用程序时,首先会获得可以选择登录或注册的主视图。我想要的是当应用程序启动页面时直接在login.html上启动

javascript angularjs yeoman yeoman-generator-angular
2个回答
1
投票

在位于client\app\app.js的app.js文件中,在angular config中添加以下内容:

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

1
投票

我知道这已经有一段时间了,你可能已经有了一个很好的解决方案,但我最近在看这个并看到几个选项。

一,在app.js内你可以在$ urlRouterProvider下添加以下代码片段:

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

使您的完整方法如下:

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

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

这会强制任何人直接登录您的基页网址,除非他们提供到另一个页面的完整路由。但是,如果您打算仍然使用main.html,则需要进入client / app / main / main.js并将默认路由更改为:

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

因此可以通过将/ main附加到url来访问main。

这让我看到选项2:进入main.js文件并将其url切换为'/ main'并进入login.js并将其url切换为'/'。然后导航到您的基页的任何人都会自动进入登录屏幕,但该网址只被视为您的域,没有任何子页面。

所以client / app / main / main.js变为:

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

而client / app / account / account.js现在包含:

.state('login', {
    url: '/',
    templateUrl: 'app/account/login/login.html',
    controller: 'LoginCtrl'
 })
© www.soinside.com 2019 - 2024. All rights reserved.