Metóda, ktorá používa údaje získané z pozorovateľné na vlastný komponent vráti neurčená ak je použitý ako Vstup()

0

Otázka

Som si vytvoril šablónu example.component.html že dostane metódu, ako variabilný jeho kliknite na akcie:

<div>
  <button (click)="method()">click here</button>
</div>

na example.component.ts súbor, metodika vychádza zo vstupu(), tak som môže použiť túto šablónu na viacerých situáciách:

@Component({
  selector: 'example',
  templateUrl: './example.component.html',
})
    export class ExampleComponent implements OnInit {
      @Input() method;
    
      constructor() {}
    
      ngOnInit(): void {}
    }

Tu je miesto, kde to komplikuje. V materskej komponent, metódy, ktorá bude aktivovaná na kliknite na tlačidlo používa premennú pochádzajúce z pozorovateľných:

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 {}
}

Aj keď materský komponent je prihlásenie businessEntityService pozorovateľné a ja som či to má v skutočnosti údajov, keď som kliknite na tlačidlo, konzoly denníky undefined.

Chápem, že to asi má čo do činenia s rozsahom a zásobníka hľadá this.business na deti komponent, ale chcela by som vedieť, či je mimochodom hovor je metóda, ktorá sa používa premennú z predplatného z vlastných komponentov ako Vstup().

angular rxjs typescript
2021-11-24 03:00:01
1

Najlepšiu odpoveď

2

Na this kontext je stratou (myslím, že). Môže sa stať, pri prechode triedy metódy ako params

Nahradiť ParentExampleComponent#onClick metóda s:

onClick = () => {
    console.log(this.business);
}

Poznámka: v zákulisí, Strojom, sa teraz bude liečiť onClick ako triedy majetku, a pohyby, ktoré sa kód do konštruktora. Pomocou klávesov so funkcia zámky this kontexte, že funkcia

2021-11-24 07:10:18

V iných jazykoch

Táto stránka je v iných jazykoch

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................