Tengo un *ngIf
con una plantilla else
definida como tal:
<button type="button" *ngIf="!paused; else resume" (click)="pause()"> pause </button> <ng-template #resume> <button type="button" (click)="resume()"> resume </button> </ng-template> class AppComponent { paused = false; pause() { this.paused = true; } resume = () => { this.paused = false; } }
El botón de pausa funciona, pero al hacer clic en el botón de reanudar se registrará un error de consola:
Error: jit_nodeValue_4(...) no es una función
Aquí hay una demostración ejecutable del problema . Haga clic en el botón 'Reanudar' y compruebe si hay errores en la consola.
El nombre de la plantilla en línea resume
entra en conflicto con el nombre del método resume
. La plantilla básicamente sobrescribe el método, de ahí el error.
Si cambia el nombre de la plantilla, funcionará:
<button type="button" *ngIf="!paused; else resumeTpl" (click)="pause()"> pause </button> <ng-template #resumeTpl> <button type="button" (click)="resume()"> resume </button> </ng-template>