я разрабатываю панель администратора, где администратор может видеть все запрошенные заказы и выбирать тех, кого он примет; и я хочу отобразить эти «принятые» заказы на другой вкладке (другой компонент, на другом маршруте). Я использую SharedService с BehaviorSubject, но он не работает: все, что я получаю во втором компоненте, это массив anonymousSubject, который пуст. Я не показываю первый компонент, который отправляет заказ в службу поддержки, которая работает нормально. Помогите пожалуйста!
shared Service
import {Injectable} from '@angular/core';
import {BehaviorSubject} from 'rxjs';
import {Turno} from '../models/turno';
@Injectable({
providedIn: 'root',
})
export class SharedService{
private acceptedBookings=[];
public acceptedBookingsSubject= new BehaviorSubject<Turno[]>([]);
//public turno:Turno;
constructor(){
}
addToAccepted(turno : Turno){
this.acceptedBookings.push(turno);
this.acceptedBookingsSubject.next(this.acceptedBookings);
console.log(this.acceptedBookingsSubject);
}
}
и вот второй компонент.
Second component, which consumes the service and has to display the array.
import { Component, OnInit} from '@angular/core';
import {SharedService} from '../../services/shared.service';
import {Observable} from 'rxjs';
import {Turno} from '../../models/turno';
import {share} from 'rxjs/operators';
@Component({
selector: 'app-turnoaceptado',
templateUrl: './turnoaceptado.component.html',
styleUrls: ['./turnoaceptado.component.css'],
providers:[SharedService]
})
export class TurnoaceptadoComponent implements OnInit {
public acceptedBookings:Observable<Turno[]>;
ngOnInit(): void {
}
constructor(private _sharedService: SharedService) {
this._sharedService.acceptedBookingsSubject.pipe(share());
}
}
И в html 2-го компонента я использую асин c pipe |