角度2可观察到

时间:2016-12-04 06:45:49

标签: angular

我有一个代码例如:

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

现在为我的服务:

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

当我给出不同的FilterArray时,我仍然从URL获取旧的FilterArray数据而不是新的FilterArray数据。 例如:我当前将FilterArray作为[" A"," B"],我从Url获​​取了一些数据。现在我将FilterArray更改为[" C"," D"],我仍然从网址收到[" A"," B"]数据

编辑: 每当FilterArray发生变化时,我都会调用getData()。即

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

我该怎么办?我是否必须在每次更换filterArray时取消订阅?

1 个答案:

答案 0 :(得分:0)

map应用给定的函数并将更改/更改为新的发射值。看起来this.extractData内的var map总是返回相同的值。