У меня есть приложение в угловом 2 с машинописным текстом. Я создаю несколько навигационных и auth-страниц в голове.Скрыть кнопки в навигаторе
Это моя структура:
- приложение
- login.comoponent.ts
- login.template.html
- navbar.component.ts
- navbar.template.html
Первая страница моего приложения - это страница auth с навигационной панелью. И в navbar у меня есть две кнопки, моя задача - скрыть эту кнопку на странице входа и показать на следующей странице (когда пользователь авторизуется в приложении).
Я создаю этот var
- showButtons: boolean = false
в navbar.component
, и в navbar.template
я добавить эту директиву: *ngIf="showButtons"
. И после этого мои кнопки скрываются, и это нормально, потому что я не создаю значение true
в login.component
. Это мой login.component
:
import { Component } from "@angular/core";
import { Router } from "@angular/router";
import { Observable } from "rxjs/Rx";
import "rxjs/add/observable/of";
import "rxjs/add/operator/catch";
import { ServerDataComponent } from "../work_with_server/src/server.data.component";
import { IUsernamePasswordModelType } from "../work_with_server/src/types.component";
@Component({
templateUrl: "./login.template.html",
})
export class LoginComponent {
public model: IUsernamePasswordModelType = { password: "", username: "" };
public loading: boolean = false;
public error: string = "";
private router: Router;
private authenticationService: ServerDataComponent;
constructor(router: Router, authenticationService: ServerDataComponent) {
this.router = router;
this.authenticationService = authenticationService;
}
public login(): void {
this.loading = true;
this.authenticationService.isLogin(this.model.username, this.model.password)
.catch((err: boolean) => Observable.of(false))
.subscribe((result: boolean) => {
if (result === true) {
this.router.navigate(["/table_per"]);
} else {
this.error = "Wrong password or login";
this.loading = false;
}
});
}
}
И это мой navbar.template
:
<nav class="navbar-fixed-top navbar-inverse ">
<div class="container-fluid" style="vertical-align: center">
<div class="navbar-header">
<b class="navbar-brand">Ласковость</b>
</div>
<ul class="nav navbar-nav">
<li>
<a style="padding-left: 3px; padding-right: 3px">
<button class="btn btn-default" (click)="backClicked()">
<a class="glyphicon glyphicon-arrow-left"></a>
</button>
</a>
</li>
<li>
<a style="padding-left: 3px">
<button class="btn btn-default" (click)="reloadPage()">
<a class="glyphicon glyphicon-refresh"></a>
</button>
</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li>
<a><span></span>
<logout>
</logout>
</a>
</li>
</ul>
Но я действительно не знаю, как связать одно значение или переменную в одном компоненте.
ваша кнопка находится в КН компонентных NavBar ereas, вы хотите правильно установить значение true из компонента входа? –
использовать службу для установки переменной true –
@Rumes Shyaman В navbar i установлен ложный оценщик, а в компоненте входа я должен добавить тот же var, но с истинным значением. – eduard