Nativescript-angular 调用 http 服务后,视图未更新 (Angular 5)
Nativescript-angular after http service call, view is not updated (Angular 5)
Nativescript-angular 调用 http 服务后,视图未更新 (Angular 5 ).
找到下面我编写了 http 服务调用的代码,然后将响应分配给未在视图页面中更新的视图。如果我执行任何其他事件,例如将鼠标悬停在文本框上,视图就会更新。
componet.ts 文件
this.orderService.getProductBySKU('DR1056.01534XXL')
.subscribe(resProduct => {
this.ngZone.run(() => {
this.processing = false;
});
}
服务文件
getProductBySKU(sku) {
const authToken = localStorage.getItem('currentUserToken');
return this.http.get(this.config.apiUrl + 'get-product-by-sku?sku=' + sku, this.config.basicAuth())
.map(response => response);
}
注意:默认情况下,this.processing 在视图中显示的构造函数中被指定为 True,在服务调用后 this.processing 被分配为 False,但仅显示 True。如果我单击任何文本框或单击按钮,this.processing 将在视图中更改为 False。
首先,我建议使用 HttpClient 参数选项来避免潜在的 URL 转义问题:
this.http.get(this.config.apiUrl + 'get-product-by-sku', {...this.config.basicAuth(), params: { sku: sku }})
```
关于处理,尝试强制更改检测:
constructor(private ref: ChangeDetectorRef) {}
(...)
this.orderService.getProductBySKU('DR1056.01534XXL')
.subscribe(resProduct => {
this.ngZone.run(() => {
this.processing = false;
this.ref.detectChanges();
});
}
如果这不起作用,请提供您的模板片段。
Nativescript-angular 调用 http 服务后,视图未更新 (Angular 5 ).
找到下面我编写了 http 服务调用的代码,然后将响应分配给未在视图页面中更新的视图。如果我执行任何其他事件,例如将鼠标悬停在文本框上,视图就会更新。 componet.ts 文件
this.orderService.getProductBySKU('DR1056.01534XXL')
.subscribe(resProduct => {
this.ngZone.run(() => {
this.processing = false;
});
}
服务文件
getProductBySKU(sku) {
const authToken = localStorage.getItem('currentUserToken');
return this.http.get(this.config.apiUrl + 'get-product-by-sku?sku=' + sku, this.config.basicAuth())
.map(response => response);
}
注意:默认情况下,this.processing 在视图中显示的构造函数中被指定为 True,在服务调用后 this.processing 被分配为 False,但仅显示 True。如果我单击任何文本框或单击按钮,this.processing 将在视图中更改为 False。
首先,我建议使用 HttpClient 参数选项来避免潜在的 URL 转义问题:
this.http.get(this.config.apiUrl + 'get-product-by-sku', {...this.config.basicAuth(), params: { sku: sku }})
```
关于处理,尝试强制更改检测:
constructor(private ref: ChangeDetectorRef) {}
(...)
this.orderService.getProductBySKU('DR1056.01534XXL')
.subscribe(resProduct => {
this.ngZone.run(() => {
this.processing = false;
this.ref.detectChanges();
});
}
如果这不起作用,请提供您的模板片段。