Vytvořil jsem šablonu example.component.html
že dostane metoda jako proměnnou do jeho klepněte na tlačítko akce:
<div>
<button (click)="method()">click here</button>
</div>
na example.component.ts
soubor, metody pochází z input(), takže mohu použít tuto šablonu na více situací:
@Component({
selector: 'example',
templateUrl: './example.component.html',
})
export class ExampleComponent implements OnInit {
@Input() method;
constructor() {}
ngOnInit(): void {}
}
Tady to začíná být komplikované. Na nadřazené složky, metody, která bude spuštěna, klepněte na příkaz používá proměnné přicházející z pozorovatelný:
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 {}
}
I když mateřská komponenta je objednají businessEntityService
pozorovatelné a já jsem zkontrolovat, že má ve skutečnosti data, když jsem klepněte na tlačítko protokoly konzole undefined
.
Chápu, že to asi má co dělat s rozsahem a zásobníku hledá this.business
na děti složka, nicméně bych rád věděl, jestli je tam vůbec volat metodu, která používá proměnnou z předplatného, z vlastní složky jako Vstup().