2017-04-03 9 views
2

Ich habe ein Problem mit einem angular2 click -Ereignis, es startet keine einfache console.log oder eine Warnung.Angular2 Klick-Ereignis funktioniert nicht

Hier poste ich meine Komponentenvorlage:

<div class="col-md-4"> 
<div *ngFor="let phone of phones"> 
{{phone.text}} 
</div> 
<input class="form-control" type="text" [(ngModel)]="phone"/> 
<button class="btn btn-primary" (click)="console.log('clicked');" type="button">Call</button> 
</div> 

Wenn ich auf die Schaltfläche klicken, gibt es nichts in der Konsole.

Ich habe versucht, eine Komponente Funktion auszuführen, auch ohne Glück.

ich es auf die gleiche Weise, als hier so mache: http://learnangular2.com/events/

Haben Sie Jungs mehr Dateien benötigen? Ich verstehe einfach nicht, warum dies nicht

funktioniert

Vielen Dank, Daniel

Edit:

Ok, so jetzt bin ich es, wie dies zu tun:

Vorlage :

<div class="col-md-4"> 
<div *ngFor="let phone of phones"> 
    {{phone.text}} 
</div> 
<input class="form-control" type="text" [(ngModel)]="phone"/> 
<button class="btn btn-primary" (click)="callPhone();" type="button">Call</button> 
</div> 

Und meine ts-Datei Komponente:

import {Component, OnInit, OnDestroy} from '@angular/core'; 
import {FormControl} from '@angular/forms'; 
import {CallService} from '../call.service'; 

@Component({ 
moduleId: module.id, 
selector: 'app-call-formular', 
templateUrl: './call-formular.component.html', 
styleUrls: ['./call-formular.component.css'], 
providers: [CallService] 
}) 
export class CallFormularComponent implements OnInit, OnDestroy { 

phones = []; 
connection; 
phone; 

constructor(private callService: CallService) { 
} 

callPhone(): any { 
    console.log('callPhone executed.'); 
} 

ngOnInit() { 
    this.connection = this.callService.getPhones().subscribe(phone =>       
{ 
     this.phones.push(phone); 
    }); 
} 

ngOnDestroy() { 
    this.connection.unsubscribe(); 
} 

} 

und startet immer noch nicht meine Click-Ereignis

+0

Wo in dieser Site hat der Autor ein 'console.log' an ein Klickereignis in der Vorlage gebunden? – echonax

+1

Sie müssen 'Konsole' Objekt in Ihrer Komponente Kontext, dann nur Sie können darauf zugreifen .. native Browser-Objekt wäre nicht direkt in der Vorlage Ereignisse verfügbar .. –

+0

Ich habe meine Antwort bearbeitet, danke Ihnen allen! – DaRo

Antwort

1

Also ja, am Ende der "Lösung" war wirklich dumm ...

ich verwendet habe, was @Sajeetharan mir gesagt, aber die "Problem" war, dass Chrome den Cache irgendwie behielt, sogar mit Ctr + Shift + R flush.

An einem bestimmten Punkt löschte ich den Cache von Chrom und es funktionierte.

Danke euch allen!

Edit:

ich hier also erklären, wie ich es tat:

ich einige Konfigurationen auf den Virtualhost nur hinzugefügt, so brauche ich nicht den incognitus Modus von Chrom zu verwenden, und was ich fügte hinzu, ist:

# DISABLE ALL CACHING WHILE DEVELOPING 
<FilesMatch "\.(html|htm|js|css|json)$"> 
FileETag None 

<IfModule mod_headers.c> 
    Header unset ETag 
    Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate" 
    Header set Pragma "no-cache" 
    Header set Note "CACHING IS DISABLED ON LOCALHOST" 
    Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT" 
</IfModule> 

Nochmals vielen dank an alle!

+1

besser mit Development Tool zu laufen und Cache zu deaktivieren, während DevTool geöffnet ist –

+0

ist es besser, vorhandene Antwort zu markieren – Sajeetharan

+0

Ich habe einige Einstellungen hinzugefügt der virtuelle host am ende, habe ich meine antwort bearbeitet – DaRo

3

Sie sollten es in den ts tun Datei

(click)="myFunc();" 

und innerhalb der .ts Datei

myFunc():any{ 
    console.log('clicked'); 
} 
+0

Ich habe meine Antwort basierend auf Ihrer Empfehlung bearbeitet, danke für Ihre Hilfe! – DaRo

+0

Am Ende fand ich was es war (überprüfe meine Antwort) .... ich fühle mich so dumm! Danke für Ihre Hilfe – DaRo

+0

es ist das samething oben gepostet – Sajeetharan

0

Fügen Sie Ihre Logik in Backend/Typoskript:

CallClick(): any { 
    console.log('clicked'); 
} 

Und html Seite:

<button class="btn btn-primary" (click)="CallClick()" type="button">Call</button> 
+0

Ich redigierte meine Antwort basierend auf Ihrer Beratung, danke für Ihre Hilfe! – DaRo

+0

funktioniert es für dich oder nicht? –

+0

mit nur Knopf HTML versuchen und alle OnInit, Service-Anruf und anderen Code kommentieren und dann überprüfen, ob Arbeit oder nicht? –