Cześć.
Prubuje przekazać zmienna z componentu rodzica do dziecka ,ale nie wiem co robię źle ,że component dziecko jej nie widzi: ( komentarzami opisałem z kąt do kąt wysyłam zmienną)
component rodzic:
import { Component, OnInit } from '@angular/core';
import {AuthenticationService} from '../../../_services/authentication.service';
import {Router} from '@angular/router';
import {UserService} from '../../../_services/user.service';
import {CalendarService} from '../../../_services/calendar.service';
import {first} from 'rxjs/operators';
import {Calendar} from '../../../_model/calendar';
import {ValueService} from '../../value.service';
@Component({
selector: 'app-calendar',
templateUrl: './calendar.component.html',
styleUrls: ['./calendar.component.less']
})
export class CalendarComponent implements OnInit {
actualDay: number;
monthNumber: number;
month: string;
year: number;
allDays: Calendar[];
start: Calendar[];
load = true;
constructor(
private calendarService: CalendarService,
private router: Router,
private valueService: ValueService
) {
const data = new Date();
this.actualDay = data.getDate();
this.monthNumber = data.getMonth() + 1;
this.year = data.getFullYear();
}
ngOnInit(): void {
this.getAllDays();
}
getAllDays() {
this.calendarService.getNumberDays().pipe(first()).subscribe(days => {
this.allDays = days;
})
}
// tutaj przekazuje liczbę i z tond przekazuje ją da service
// metoda getNexDay jest uruchomiana poprzez klikniecie button z odpowiadaniom wartością
getNexDay(day : number) {
this.valueService.nextDay(day);
}
}
service:
import { Injectable } from '@angular/core';
import {Subject} from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class ValueService {
dayNext$ = new Subject<number>();
nextDay(day : number) {
this.dayNext$.next(day);
console.log(day); // tutaj działa i widzi tą zmienna
}
}
i component dziecko:
import { Component, OnInit } from '@angular/core';
import {CalendarService} from '../../../../_services/calendar.service';
import {first} from 'rxjs/operators';
import {Task} from '../../../../_model/task';
import {ValueService} from '../../../value.service';
import {Subscription} from 'rxjs/';
@Component({
selector: 'app-task',
templateUrl: './task.component.html',
styleUrls: ['./task.component.less']
})
export class TaskComponent implements OnInit {
tasks: Task[];
nextDay: Subscription;
findNexDay: number;
constructor(
private calendarService: CalendarService,
private valueService: ValueService
) { }
ngOnInit(): void {
this.getTasks();
}
getTasks() {
this.calendarService.getTasks().pipe(first()).subscribe(task=>{
this.tasks = task;
})
}
// tutaj staram się pobrać zmienną ale nic nie widzi
getNextTask() {
this.nextDay = this.valueService.dayNext$.subscribe((day)=>{
this.findNexDay = day;
})
console.log(this.findNexDay); // tutaj już właśnie nie widzi i nie chce poprać zmiennej
}
}
Z góry bardzo dziękuje za pomoc lub wskazówkę.