2016-12-01 2 views
0

Ich versuche verstehen, warum der Compiler die "angegebenen Parameter nicht mit jeder Signatur des Aufrufziels übereinstimmen" Fehler in diesem Code in Angular 2.0 kompiliert in es6.eckig 2 http erhalten Understanding "angegebene Parameter stimmen nicht mit Signatur des Aufrufziels überein"

Der Fehler ist auf der Linie this.observer_data = this.http.get(this.get_all_buchungen_url ...

Der Service bietet eine beobachtbare Ziel der „BuchungsPos“ Typ Hexe wird mit der load_and_init_buchungen() Funktion initialisiert werden.

Service:

@Injectable() 
export class ReadBuchungenService { 

    public observer_data : Observable<BuchungPos>; 
    constructor (private http : Http) {} 

    public load_and_init_buchungen(timestamp : number) { 

     let params = new URLSearchParams(); 
     params.set('timestamp', String(timestamp)); 

     this.observer_data = 
      this.http.get(this.get_all_buchungen_url, { search: params }) 
      .map(response => response.json()); 

     return; 
    } 

... 

Die importierte BuchngsPos Klasse wie folgt aussieht:

export class BuchungPos { 

    constructor(public id : number, 
       public date : string, 
       public name : boolean 
    ) {} 
} 

im app.component

constructor(public readDataservice : ReadBuchungenService) {} 

    ngOnInit() { 
     this.readDataservice.load_and_init_buchungen(this.startTime); 
    } 

und verwenden Sie das Objekt in anderen Komponenten:

export class TagComponent implements OnInit { 

    private buchungPos : BuchungPos; 

    constructor(private readBuchungenService : ReadBuchungenService) { } 

    ngOnInit() { 
     this.readBuchungenService.observer_data.subscribe(
      function (data) { 
       this.buchungPos = data.data; 
      }.bind(this) 
     ); 
    } 
} 

Ich habe bereits nach diesem Problem gesucht und einige Antworten gefunden, aber sie haben mir nicht geholfen, es zu verstehen.

angular2: Supplied parameters do not match any signature of call target, even though i have all the needed params

chart.js - Supplied parameters do not match any signature of call target (angular2)

+0

Statt 'funtion der Verwendung von (..) {...} .bind() 'Sie können einfach' (..) => {...} 'verwenden –

Antwort

0

ich den Fehler von mir selbst gefunden, muss ich die neueste Version rxjs verwenden, hier das Paket json:

"dependencies": { 
    "@angular/common": "^2.2.4", 
    "@angular/compiler": "^2.1.2", 
    "@angular/core": "^2.2.4", 
    "@angular/http": "^2.1.4", 
    "@angular/platform-browser": "^2.1.2", 
    "@angular/platform-browser-dynamic": "^2.1.2", 
    "@angular/router": "^3.1.4", 
    "core-js": "^2.4.1", 
    "reflect-metadata": "^0.1.8", 
    "rxjs": "5.0.0-beta.12", 
    "systemjs": "^0.19.40", 
    "zone.js": "^0.6.26" 
    } 
Verwandte Themen