2016-12-04 13 views
0

habe ich einen Code zum Beispiel:beobachtbare in Winkel 2

getData(){ 
_someservice.somefunction(this.filterArray).subscribe(data=>this.data=data}).catch(); 
    } 

Jetzt für Meinen Service:

export class someService{ 
    somefunction(filter:any){ 
     return http.get("https:...... /?parameter="+filter).map(this.extractData).catch(); 
    } 
} 

Wenn ich verschiedene FilterArray geben, bekomme ich immer noch alte FilterArray Daten anstelle von neuen FilterArray Daten von der URL Like Zum Beispiel: Ich habe derzeit FilterArray als ["A", "B"], und ich bekomme einige Daten von Url. Jetzt ändere ich FilterArray zu ["C", "D"], ich empfange immer noch ["A", "B"] Daten von der URL.

Edit: Ich rufe getData() immer wenn FilterArray geändert wird. d. h.

<div> 
<select> 
<option *ngFor="let x of filterArray" (click)="getData()">{{x}}</option> 
</select> 
</div> 

Was soll ich tun? Muss ich mich jedes Mal abmelden, wenn das FilterArray geändert wird?

+0

Wie benutzt man 'getData()'? Und warum wickelst du 'somefunction' mit' getData'? Wo wechselst du 'filterArray'? Bitte gib etwas mehr Code an. – echonax

+0

Danke für die Antwort. Ich habe zusätzlichen Code hinzugefügt. – CruelEngine

+0

this.filterArray oder this.data? Welches ist in deinem Fall richtig? – micronyks

Antwort

0

map gelten gegebene Funktion und ändern/ändern in neuen emittierten Wert. Sieht aus wie var this.extractData innerhalb map immer denselben Wert zurückgeben.