angular - HostBinding til anonym lambda-funksjon?


Jeg bruker @HostBinding for å binde resultatene av en funksjon til verts-elementets synlige attributt:

@HostBinding('attr.visible')
private get visibleAttr(): any {
  return this._visible ? '' : null;
}

Funksjonsnavnet virker overflødig fordi ingenting annet noen gang vil kalle denne funksjonen. Jeg prøvde å deklarere den som en anonym lambda-funksjon, men det fungerte ikke:

@HostBinding('attr.visible') (() => {
  return this._visible ? '' : null;
})

Finnes det en måte å erklære denne funksjonen anonymt på, eller i det minste med en lambda? Eller avhenger Angular-rammeverket av at den har et navn?

Svar #1

@HostBinding er en dekoratør og trenger et gyldig medlem å dekorere. Hvis ditt andre kodeeksempel

(() => {
  return this._visible ? '' : null;
})

på egenhånd var et gyldig medlem det kunne fungere men dette er ikke gyldig TypeScript (eller JavaScript) for en medlemsdeklarasjon. Som sådan kan det ikke fungere.

Relaterte artikler