Stworzyłem szablon example.component.html
który otrzymuje metoda jako zmiennej dla swej ważności kliknięcia:
<div>
<button (click)="method()">click here</button>
</div>
na example.component.ts
plik metoda pochodzi z wprowadzania(), więc mogę użyć tego szablonu w kilku sytuacjach:
@Component({
selector: 'example',
templateUrl: './example.component.html',
})
export class ExampleComponent implements OnInit {
@Input() method;
constructor() {}
ngOnInit(): void {}
}
To tu wszystko się komplikuje. W nadrzędnym elemencie metoda, który zostanie uruchomiony po kliknięciu, wykorzystuje zmienną uzyskanych z obserwowanych:
parent-example.component.html
<example [method]="onClick"></example>
parent-example.component.ts
@Component({
selector: 'parent-example',
templateUrl: './parent-example.component.html',
})
export class ParentExampleComponent implements OnInit {
@Input() method;
business;
constructor(businessEntityService: BusinessEntityService) {
businessEntityService.entities$.subscribe(
data => (this.business = data),
);
}
onClick() {
console.log(this.business);
}
ngOnInit(): void {}
}
Nawet jeśli nadrzędny składnik podpisany przez businessEntityService
obserwujący i sprawdziłem, że ma rzeczywiste dane, gdy wciskam przycisk, konsola jest rejestrowane undefined
.
Rozumiem, że jest to prawdopodobnie związane z obszarem działania, i stos szuka this.business
jednak w podrzędnej składniku chciałbym wiedzieć, czy można w każdym razie wywołać metodę, która wykorzystuje zmienną z subskrypcji z własnego komponentu jako danych wejściowych().