2017-06-08 13 views
0

ボタンをクリックしたときに、console.log('hey');がブラウザコンソールに記録されない理由は何ですか?ボタンをクリックしたときにコンポーネント機能が呼び出されない理由

<button (click)="hey">Click me!</button>をクリックした場合、sub-componentを表示/非表示にしようとしています。

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

'クリックしてください! 'カッコがありません。 – Alex

答えて

1

あなたがメソッドを呼び出す必要があります。

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

事が(click)がクリックイベントであるということです:ちょうどあなたのコンポーネントで

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

そして。そのイベントが発生したときに何をすべきか教えてください。この場合、logThis()と呼んでいます。

更新:

私はあなたが実際にhey()メソッドを宣言し、あなたは自分の()を忘れてしまったということがわかりませんでした。

文字列を直接渡すと思っていました。私の悪い!

とにかく、これは他の人には便利です! :D

関連する問題