2017-06-08 3 views
0

Eine Idee warum console.log('hey'); nicht in der Browser-Konsole protokolliert wird, wenn ich auf die Schaltfläche klicke?Warum wird die Komponentenfunktion nicht aufgerufen, wenn auf die Schaltfläche geklickt wird

Ich versuche, die sub-component anzuzeigen/zu verbergen, wenn <button (click)="hey">Click me!</button> angeklickt wird.

app.component.ts

import { Component } from '@angular/core'; 

@Component({ 
    selector: 'my-app', 
    templateUrl: './app.component.html' 
}) 
export class AppComponent { 
    public flag = false; 
    public hey() { 
    console.log('hey'); 
    this.flag = true; 
    } 
} 

app.component.html

<button (click)="hey">Click me!</button> 
<div *ngIf="flag"> 
    <sub-component></sub-component> 
</div> 

index.html

<body> 
    <my-app>Loading...</my-app> 
</body> 
+2

' 'Sie fehlen Klammern. – Alex

Antwort

1

Sie benötigen eine Methode aufrufen.

<button (click)="logThis('hey')">Click me!</button> 
<div *ngIf="flag"> 
    <sub-component></sub-component> 
</div> 

Und dann nur in Ihrer Komponente:

logThis(msg) { 
    console.log(msg); 
} 

Die Sache ist die, dass (click) das Klickereignis ist. Und Sie müssen ihm sagen, was zu tun ist, wenn das Ereignis ausgelöst wird. In diesem Fall rufen wir an.

Update:

ich nicht sehen, dass Sie tatsächlich ein hey() Methode deklariert und dass Sie nur Ihre () vergessen.

Ich dachte, Sie haben versucht, eine Zeichenfolge direkt zu übergeben. Mein Fehler!

Wie auch immer, könnte dies für andere nützlich sein! : D

Verwandte Themen