У меня есть два компонента, и я хотел бы передать данные из «дочернего» компонента, который происходит, когда пользователь щелкает изображение внутри этого компонента.
У меня есть два компонента (публикация и gifpicker - дочерний компонент)
Функция applyGif()
— это функция в дочернем компоненте, которую я использую для передачи данных — я хочу передать эти данные родительскому компоненту.
Примечание. Компоненты имеют некоторый код, не требуемый для этого аспекта, который удален из поля зрения в этом посте для дополнительной ясности.
HTML-компонент ниже в настоящее время ничего не показывает в selectedGif
по какой-то причине в представлении
-- Компонент публикации (родительский компонент) --
/** long list of imports here **/
@Component({
selector: 'app-posting',
templateUrl: './posting.component.html',
styleUrls: ['./posting.component.scss'],
providers: [ GifpickerService ],
})
export class PostingComponent implements OnInit{
public selectedGif: any = '';
@ViewChild(GifpickerComponent) gifpicker: GifpickerComponent;
ngOnInit(): void {
}
constructor(@Inject(DOCUMENT) private document: any,
public gifpickerService: GifpickerService,
) {}
}
-- GifPickerComponent (дочерний компонент) --
import {Component, OnInit} from '@angular/core';
import {FormControl} from '@angular/forms';
import {GifpickerService} from "./gifpicker.service";
@Component({
selector: 'app-gifpicker',
templateUrl: './gifpicker.component.html',
styleUrls: ['./gifpicker.component.scss'],
providers: [ GifpickerService ],
})
export class GifpickerComponent implements OnInit {
public selectedGif: any = {};
constructor(private gifpickerService: GifpickerService) {}
ngOnInit() {
}
applyGif(gif): any {
// this is an json object I want to use/see in the Posting HTML Component
let gifMedia = gif.media[0];
}
}
-- Публикация компонента HTML (нужны данные из gifPickerComponent applyGif(), показанные здесь --
<div>{{ selectedGif }}</div>