2017-04-27 5 views
1

Ich bekomme diesen Fehler und ich bin neue zu eckig 2, so dass ich nicht 100% sicher bin, wie das Problem zu lösen, ich bin eine Verbindung zu einer Test-API ein JavaScript-Objekt zurückgeben, das einige Dummy-Daten enthält. Aber meine "this.onGet()" - Funktion sagt mir, dass der angegebene Parameter keiner Signatur des Anrufziels entspricht und ich kann nicht herausfinden, warum. (Im Grunde versuche ich bin nur Orderinfo-Array mit den Informationen aus der API zu füllen, so dass ich es über mehrere Seite verwenden)

Jede Hilfe dankbar :)"Mitgelieferte Parameter stimmen nicht mit einer Signatur des Anrufziels überein." Bei der Verwendung eines Get zu sammeln Informationen aus API

App.component.ts

import { Component, OnInit } from '@angular/core'; 
import { DetailsService } from './details.service'; 

@Component({ 
    selector: 'app-root', 
    templateUrl: './app.component.html', 
    styleUrls: ['./app.component.css'], 
    providers: [DetailsService] 
}) 

export class AppComponent implements OnInit { 
    orderInfo = [ 
     { 
      name: 'Test' 
     } 
    ]; 
    constructor(private detailsService: DetailsService) { 
    } 

    ngOnInit() { 
     this.onGet(); 
    } 

    onGet(name: string) { 
     this.detailsService.getDetails() 
      .subscribe(
       (orderData: any[]) => { 
        this.orderInfo.push({ 
         name: name 
        }); 
        console.log(orderData); 
       } 
      ); 
    } 
} 

details.service.ts

import {Injectable} from '@angular/core'; 
import { Http, Response } from '@angular/http'; 
import 'rxjs/Rx'; 

@Injectable() 
export class DetailsService { 
    constructor(private http: Http) {} 
    getDetails() { 
     return this.http.get('http://swapi.co/api/people/1/?format=json', '') 
      .map(
       (response: Response) => { 
        const orderData = response.json(); 
        return orderData; 
       } 
     ); 

    } 
} 

Antwort

1

Die Unterschrift von HTTP-GET-Methode ist

get(url: string, options?: RequestOptionsArgs) : Observable<Response> 

Sie eine zusätzliche String-Parameter

getDetails() { 
     ///////////////removed below single quotes 
     return this.http.get('http://swapi.co/api/people/1/?format=json') 
      .map(
       (response: Response) => { 
        const orderData = response.json(); 
        return orderData; 
       } 
     ); 

Schauen Sie in Ihre

ngOnInit() { 
     this.onGet(); //////////nothing passed 
    } 

wo als Methode Signatur ist onGet(name:string) Sie nichts vorbei, wie oben sind vorbei

+0

Ich tat dies, aber es schien nicht das Ding zu sein, das das Problem verursachte –

0

Ihre OnGet-Funktion erwartet einen Zeichenfolgenparameter, was nicht der Fall ist Wird während des Aufrufs von ngOnInit bereitgestellt.

Verwandte Themen