Я новичок в Angular, поэтому, пожалуйста, потерпите мою наивность.Я создал компонент входа в систему, который я использую для предотвращения доступа к навигационным ссылкам маршрутизатора в главном html-компоненте приложения, пока пользователь не войдет в систему. Сам компонент входа является еще одной перенаправленной страницей, и я вместо этого хотел добавить компонент входа на свою главную страницу.и скрывать навигационные ссылки маршрутизации до тех пор, пока пользователь не войдет в систему.
Чтобы скрыть пользовательские навигационные ссылки в html-компоненте приложения, я попытался использовать * ngIf = "authService.getUser ()".
* ngIf = "authService.getUser ()" скрывает компоненты навигации до тех пор, пока пользователь не войдет в систему, как ожидалось, но неожиданно также не отобразил весь компонент входа в систему (поля пользователя и пароля икнопка отправки), за исключением первого текста, который просто говорит «ВХОД».Таким образом, пользователь не имеет возможности войти в систему.это app.component.html:
<app-login>
</app-login>
<div class="page-header" >
<div class="container">
<div *ngIf="authService.getUser()" class="navLinks">
<a [routerLink]="['/home']"> Home</a>
<a [routerLink]="['/about']"> About App</a>
<a [routerLink]="['/login']">Login</a>
<a [routerLink]="['/protected']">Protected</a>
</div>
</div>
</div>
<div id="content">
<div class="container">
<router-outlet></router-outlet>
</div>
</div>
и это мои файлы компонентов входа в систему
login.component.ts:
import { Component } from '@angular/core';
import { AuthService } from '../auth.service';
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.css']
})
export class LoginComponent {
message: string;
constructor(public authService: AuthService) {
this.message = '';
}
login(username: string, password: string): boolean {
this.message = '';
if (!this.authService.login(username, password)) {
this.message = 'Incorrect credentials.';
setTimeout(function() {
this.message = '';
}.bind(this), 2500);
}
return false;
}
logout(): boolean {
this.authService.logout();
return false;
}
}
login.component.html:
<h1>Login</h1>
<div class="alert alert-danger" role="alert" *ngIf="message">
{{ message }}
</div>
<form class="form-inline" *ngIf="!authService.getUser()">
<div class="form-group">
<label for="username">User: (type <em>user</em>)</label>
<input class="form-control" name="username" #username>
</div>
<div class="form-group">
<label for="password">Password: (type <em>password</em>)</label>
<input class="form-control" type="password" name="password" #password>
</div>
<a class="btn btn-default" (click)="login(username.value, password.value)">
Submit
</a>
</form>
<div class="well" *ngIf="authService.getUser()">
Logged in as <b>{{ authService.getUser() }}</b>
<a href (click)="logout()">Log out</a>
</div>