Angular 角度Http订阅响应值也会更改
我正在申请Angular Ionic项目的api。我将传入的数据传输到两个相同的变量。但当我过滤时,主要参数“response”也会改变 当我希望“response”保持不变时,我希望对不同的参数使用不同的过滤器。请帮帮我Angular 角度Http订阅响应值也会更改,angular,ionic4,Angular,Ionic4,我正在申请Angular Ionic项目的api。我将传入的数据传输到两个相同的变量。但当我过滤时,主要参数“response”也会改变 当我希望“response”保持不变时,我希望对不同的参数使用不同的过滤器。请帮帮我 // venues: Venue kahvaltiMekani: Venue // var searchVenuesSubscribe = this.searchVenueService.searchVenues(String(jsonParse.git
//
venues: Venue
kahvaltiMekani: Venue
//
var searchVenuesSubscribe = this.searchVenueService.searchVenues(String(jsonParse.gitmeSebebi.join(",")).replace(" ", "+"), String(jsonParse.latLng));
searchVenuesSubscribe.pipe(map(imm=>{
this.venues = imm
this.venues.response.venues = this.venues.response.venues.filter((thing, i, arr) => {
return arr.indexOf(arr.find(t => t.name === thing.name)) === i;
});
this.venues.response.venues.forEach(item => {
try {
this.distanceMatrix(jsonParse.lat, jsonParse.lng, item.location.lat, item.location.lng, item);
}
catch{ }
});
this.kahvaltiMekani = imm;
this.kahvaltiMekani.response.venues = this.kahvaltiMekani.response.venues.filter(a => a.categories.find(b => b.id === "4bf58dd8d48988d179941735"
|| b.id === "4bf58dd8d48988d16a941735" || b.id === "52e81612bcbc57f1066b79f1" || b.id === "4bf58dd8d48988d143941735" || b.id === "52e81612bcbc57f1066b7a0c" || b.id === "4bf58dd8d48988d16d941735") !== undefined)
.slice(0, 1);
})).subscribe(response => {
});
好的。我认为您的问题是创建了一个引用 在JavaScript中,不可能从一个变量引用到另一个变量
this.venues = imm
因此,在本例中,this.vinces将是对imm的引用,即每当this.vinces更改时,imm也会更改
因此,请尝试创建对象的副本
创建对象副本的方法
JSON.parse(JSON.stringify(object))
谢谢你的回答。但我的问题还没有解决。我的问题是“反应”正在改变。我并没有对他做任何事。有趣的是,“反应”正在改变。以上代码中的“响应”为“imm”。更新了答案。看看这能不能解决你的问题你很棒。你救了我一天。