Angular Http 订阅响应值也发生了变化
Angular Http Subscribe Response Value Also Changes
我正在为 Angular Ionic 项目申请 api。我将传入数据传输到两个相同的变量。但是当我过滤时,主要参数 "response," 也会发生变化。
当我希望“响应”保持不变时,我希望对不同的参数使用不同的过滤器。请帮助我。
//
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 中,只是 NOT 不可能有从一个变量到另一个变量的引用。
this.venues = imm
所以在这种情况下,this.venues 将是对 imm 的引用,即每当 this.venues 更改时,imm 也会更改。
因此请尝试创建该对象的副本。
创建对象副本的方法
JSON.parse(JSON.stringify(object))
我正在为 Angular Ionic 项目申请 api。我将传入数据传输到两个相同的变量。但是当我过滤时,主要参数 "response," 也会发生变化。
当我希望“响应”保持不变时,我希望对不同的参数使用不同的过滤器。请帮助我。
//
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 中,只是 NOT 不可能有从一个变量到另一个变量的引用。
this.venues = imm
所以在这种情况下,this.venues 将是对 imm 的引用,即每当 this.venues 更改时,imm 也会更改。
因此请尝试创建该对象的副本。
创建对象副本的方法
JSON.parse(JSON.stringify(object))