Я пытаюсь, чтобы компонент появлялся при нажатии на кнопку.Компонент и кнопка находятся в двух несвязанных классах, поэтому я использую модуль «Поведение субъекта».Однако связь между кнопкой и службой не изменит логическое значение на «true», и я не могу понять, почему.Вот мой код:
Data.service.ts:
import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';
@Injectable()
export class DataService{
private showEventForm = new BehaviorSubject<boolean>(false);
currentShowEventForm = this.showEventForm.asObservable();
constructor(){ }
editShowEventForm(newClick){
this.showEventForm.next(newClick);
}
}
HTML:
<button type="button" class="btn btn-primary" (click)="toggleEventForm()">
Post Event</button>
Ts:
import { Component, OnInit } from '@angular/core';
import { DataService } from '../data.service';
@Component({
selector: 'vhub-postEvent',
templateUrl: './postevent.component.html',
styleUrls: ["./postevent.component.css"]
})
export class PostEventComponent implements OnInit{
showEventForm: boolean = false;
constructor(private mydata: DataService) {
}
ngOnInit() {
this.mydata.currentShowEventForm.subscribe(showEventForm => this.showEventForm = showEventForm);
}
toggleEventForm(): void{
this.showEventForm = !this.showEventForm;
}
}