我很茫然,我有一个使用http
客户端来获取数据的服务:
export class CategoryService {
...
public getCategories(include?: string): Observable<ICategory[]> {
return this.http.get(`/categories?include=${include}`);
}
...
}
最初是从另一个组件中的ngOnInit
方法调用的,此方法工作正常,返回了数据并将其显示在视图中。
export class ListCategoriesComponent implements OnInit {
...
public ngOnInit() {
this._getCategories();
}
private _getCategories() {
// Debug
console.log('called getCategories');
this.loading = true;
this.categories = [];
this.temp = [];
this.catService.getCategories('products')
.subscribe((response) => {
this.categories = response;
this.temp = [...this.categories];
this.loading = false;
}, (err) => {
this.loading = false;
});
}
...
}
我遇到的问题是,当我尝试再次调用_getCategories
刷新数据时,可以看到从console.log
输出中调用了该方法。但是我认为数据没有刷新。 XHR请求不会重新发送到服务器。
我发誓我曾经能够在Angular 2和Angular 4中做到这一点。但是现在由于某种原因,它根本不起作用。我在这里想念什么?
答案 0 :(得分:0)
这是ngx-datatable的一个特定问题,也是我对库(可能是JS)的误解。
简单地设置this.categories = response;
不允许用新数据更新表,我需要使用JS Spread运算符。
赞:
this.categories = [...response];
如果我不这样做,则不会更新数据。也许有人可以对此背后的原因发表评论。