Доброе утро!
Начал писать на Ангулар 5 и сразу же столкнулся с проблеммой передачи данных между незацязанными контроллерами. ПОмотрел в сети - ответы есть... но не работает почему то. Предоставляю код и буду рад совету. Заразнее спасибо.
Здесь контроллер который содержит лист репортов:
import { Component, OnInit } from '@angular/core';
import { Report } from '../models/report';
import { ReportsService } from './reports.service';
import { Message } from '@angular/compiler/src/i18n/i18n_ast';
@Component({
selector: 'app-reports',
templateUrl: './reports.component.html',
styleUrls: ['./reports.component.css']
})
export class ReportsComponent implements OnInit {
reports: Report[];
selectedReport: Report;
getReportData(reportId: number): void {
this.reportService.getReport(reportId);
}
constructor(private reportService: ReportsService) { }
ngOnInit() {
this.getReportsList();
}
}
Сервис
import { Injectable } from '@angular/core';
import { Observable, of } from 'rxjs';
import { Report } from '../models/report';
import { REPORTS } from '../reports-mock';
@Injectable({
providedIn: 'root',
})
export class ReportsService {
selectedReport: Observable<Report>;
getReport(id: number): Observable<Report> {
this.selectedReport =of (REPORTS.find(rep => rep.id === id));
return this.selectedReport;
}
constructor() { }
}
и сам по себе "репорт" который получает переменную
import { Injectable } from '@angular/core';
import { Observable, of } from 'rxjs';
import { Report } from '../models/report';
import { REPORTS } from '../reports-mock';
@Injectable({
providedIn: 'root',
})
export class ReportsService {
selectedReport: Observable<Report>;
getReportsList(): Observable<Report[]> {
return of(REPORTS);
}
getReport(id: number): Observable<Report> {
this.selectedReport =of (REPORTS.find(rep => rep.id === id));
return this.selectedReport;
}
constructor() { }
}