路由也显示上一页的内容

时间:2019-06-12 09:44:07

标签: javascript html angular

我正在构建一个网页,该网页以一个简单的登录框开头,其中包含用户名,带有输入框的密码以及两个带有名称登录和注册的按钮。

单击登录按钮后,我的页面应路由到另一个包含导航栏的组件。它确实路由,在那里没有问题。但是,路由后登录框不会消失。

因此,在路由之后,会出现导航栏,但登录框仍然存在。

APP.COMPONENT.HTML

      <div class="background-image">

          <router-outlet></router-outlet>
         <div class="content2">

          <h2 >Login</h2>
         <br>

        <form>
       <div class="form-group">
              <label style="margin: 5px">Username</label>

           <input type="text"  />

           </div>
            <div class="form-group">
             <label style="margin: 7.5px">Password</label>

             <input type="password" />

         </div>
           <div class="form-group">
       <button (click)="onclick()" [disabled]="loading" class="btn btn- 
        primary">Login</button>
      <a href="/register" class="btn btn-link">Register</a>
            </div>
          </form>
      </div>
         </div>

APP.COMPONENT.TS

import { Component } from '@angular/core';
import { Router } from '@angular/router';

@Component({
       selector: 'app-root',
      templateUrl: './app.component.html',
      styleUrls: ['./app.component.css']
           })
   export class AppComponent {
       title = 'welfareUI';
       constructor(private router: Router){

         }
      onclick()
      {
          this.router.navigateByUrl('/navbar');
      }

     }

5 个答案:

答案 0 :(得分:0)

这是因为您已将登录html放置在app.component.html中。 <router-outlet></router-outlet>替换当前路由的模板,除了此文件中的所有html都是常量。

您可以创建一个单独的登录组件。默认情况下,导航到登录组件。不要将登录html保留在app.component.html

答案 1 :(得分:0)

创建用于登录的单独组件。将HTML代码插入login.html,并将路由器出口放置在app.html文件中。

答案 2 :(得分:0)

您已经创建了loginComponent并将您的登录代码放入其中,然后使用路由器路径将登录组件显示为默认  {path:'',redirectTo:'/ heroes',pathMatch:'full'}, 可以参考下面的链接 https://angular.io/guide/router#the-default-route-to-heroes

答案 3 :(得分:0)

@Yash Anand无论@Adrita Sharma说的是正确的。您将创建一个新的登录组件,并将登录html标记保留在login.component.html中。仅将<router-outlet></router-outlet>保留在app.component.html中。现在,当您单击登录按钮时,它将仅显示导航栏。 注意-请确保默认情况下已将路由配置为进入app.module中的登录页面。

routes: [{path : '', component: LoginComponent}] 

答案 4 :(得分:0)

创建登录组件并将其最初加载到路由器插座中。 routes: [{path : '', component: LoginComponent}]

点击登录按钮后,呼叫您要导航的其他路线。

路由:[{路径:'/ abc',组件:abcComponent}]