Мое намерение - отправить данные из одного компонента в другой. Пользователь может выбирать между 3 различными предложениями - события клика предоставляют разные данные (в данном случае номера от 1 до 3) - эти данные сохраняются в Отправителе как «selectedDiv» - ( следующее не работает ) данные из «selectedDiv» должны быть отправлены в Reciever, и также должно быть обновлено, когда «selectedDiv» в передающем компоненте изменится .
Я уже нашел предложения на stackoverflow.com, но ни одно из них не сработало для меня.
Обобщенная:
Компонент, который должен отправлять данные, содержит номер, который необходимо переслать другому компоненту.
Мой прогресс до сих пор:
Услуги:
export class SelectedService {
selectedDiv: number;
changeNumber(div: number) {
this.selectedDiv = div;
}
}
Отправитель:
import { Component, OnInit } from '@angular/core';
import {SelectedService} from '../selected.service';
@Component({
selector: 'app-wedding',
templateUrl: './wedding.component.html',
styleUrls: ['./wedding.component.css'],
providers: [SelectedService]
})
export class WeddingComponent implements OnInit {
selectedDiv: number;
public onChoose(event): void {
this.selectedDiv = event;
this.selectedService.changeNumber(this.selectedDiv);
}
constructor(private selectedService: SelectedService) {
}
ngOnInit() {
}
}
Ресивер:
import { Component, OnInit } from '@angular/core';
import {SelectedService} from '../selected.service';
@Component({
selector: 'app-contact',
templateUrl: './contact.component.html',
styleUrls: ['./contact.component.css'],
providers: [SelectedService]
})
export class ContactComponent implements OnInit {
selectedDiv: number;
constructor(private selectedService: SelectedService) {
this.selectedDiv = this.selectedService.selectedDiv;
}
ngOnInit() {
}
}
Edit:
Первый подход показал следующую ошибку: this.selectedService.changeNumber не является функцией
Снимок экрана от Авгурия (принимающий компонент почему-то остается пустым):
Отправка свадебного компонента:
WeddingComponent
Получение контактного компонента:
ContactComponent