stackblitz.com/edit/angular-kendo-2grid 用这个检查。如果我单击下一个网格,它应该调用新的 api 并显示数据,但它也会更改以前的数据
我的单个组件中有两种不同的方法,它们使用 .pipe() 方法并在服务文件中引用两种不同的方法。这意味着他们打算给出不同的结果但给出相同的结果。
我有一个很好的视图,我在单击其中一个列表时实现了一个新视图。我得到新结果很好,但现有结果也更新为新结果。
在我的服务文件中:
methodOne(){
return this.http
.get(`https://jsonplaceholder.typicode.com/posts`, this.httpOptions)
.pipe(
map(
res => {
if (!res) {
return res = '';
} else {
return res
}
}
)
)
.pipe(
tap(data => {
this.data = data
})
)
.subscribe(data => {
super.next(data);
});
}
}
最初的第一种方法有效,第二种方法也有效,但是当第二种方法有效时,它也会改变第一个视图的结果
methodTwo(){
return this.http
.get(`https://jsonplaceholder.typicode.com/newposts`, this.httpOptions)
.pipe(
map(
res => {
if (!res) {
return res = '';
} else {
return res
}
}
)
)
.pipe(
tap(data => {
this.data = data;
})
)
.subscribe(data => {
super.next(data);
});
}
}
在我的组件文件中:
comOne(value){
this.editService.methodOne(value);
this.view = this.editService.pipe(map(
data => process(data, this.gridState)
));
}
comTwo(value){
this.editService.methodTwo(value);
this.view2 = this.editService.pipe(map(
data => process(data, this.gridState)
));
}
两者都有效,但是当我调用 comTwo(value) 时,它也会更改 this.view 结果,我想保留 this.view 结果