首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分裂login.component与app.component

分裂login.component与app.component
EN

Stack Overflow用户
提问于 2016-12-19 21:20:00
回答 1查看 3K关注 0票数 2

我试图创建一个与主应用程序布局非常不同的登录页面,因此我尝试将login.component与app.component分开,我还使用body class属性来设置body元素的class属性,我也希望听到任何处理这个问题的经验,并说我的方式是错误的或好的。

这里我的index.html、login.component.ts和app.component.ts文件是什么样子的;

login.component.ts

代码语言:javascript
复制
import { Component } from '@angular/core';
import {Auth} from '../auth/auth.service';

@Component({
  selector: 'app-login',
  templateUrl: './login.component.html',
  styleUrls: [
  '../../assets/css/colors/cyan.css'
  ]
})
export class LoginComponent {
  bodyclass = 'body-login-class';   
  constructor(private auth:Auth){}
}

app.component.ts

代码语言:javascript
复制
import { Component } from '@angular/core';
import {Auth} from './auth/auth.service';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css',
  'assets/css/colors/default.css',
...
      ]
    })
    export class AppComponent {
      bodyclass = 'body-general-class';
      constructor(private auth:Auth){}
    }

index.html

代码语言:javascript
复制
<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <title>AngTs19December</title>
  <base href="/">
    <script src="http://cdn.auth0.com/js/lock/10.2/lock.min.js"></script>
</head>
<body [class]="bodyclass">
  <app-root>Loading...</app-root>
<app-login></app-login>
        <!-- Global Plugin JavaScript -->
...
</body>
</html>

我从来没有遇到过像使用这样的例子

app-root和app-登录

在同一个文件里,所以它困扰我..。无论如何,这是我在运行这个程序时所面临的错误。

最后,routes.ts登录页必须是欢迎用户的页面,总是将其注册在

代码语言:javascript
复制
import {ModuleWithProviders} from '@angular/core';
import {Routes, RouterModule} from '@angular/router';
import {AuthGuard} from './auth/auth.guard';
import {HomeComponent} from './home/home.component';
import {LoginComponent} from './login/login.component';
const appRoutes: Routes=[
    {
        path:'home',
        component:HomeComponent,
        canActivate:[AuthGuard]
    },
    {
        path:'',
        component:LoginComponent
    }
];

export const appRoutingProviders: any[] = [];
export const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-19 22:31:00

<app-root></app-root><app-login></app-login>不能同时出现在索引页面上。

更改app.component.ts文件:

代码语言:javascript
复制
import { Component } from '@angular/core';

@Component({
    selector: 'app-root',
    template: `
        <router-outlet></router-outlet>
    `
})

export class AppComponent { }

最重要的部分是<router-outlet></router-outlet

在索引文件中,删除<app-login></app-login>

根据您的路由,假设您使用localhost:3000,是用户导航到localhost:3000时显示的登录页面(LoginComponent)。从这里,如果凭据正确,您可以将用户路由到HomeComponent。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41231176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档