-1

我正在使用 naticescript 和 angular 创建应用程序。我已经用消息实现了进度指示器。虽然从角度组件进行测试,但一切正常,但是当我开始使用真正的 nativescript-background-http 进度指示器时,视图似乎变得分离,因为它停止更新,直到我在视图中调用 detectChanges 或使用 ngZone.run 从上传功能发布消息。这一切都是可以理解的,但稍后我将其他消息(rxjs)从普通组件发布到相同的进度指示器,我看到它们在控制台中出现,但显示值没有更新。

为什么存在于单独组件中的进度指示器会分离?

4

1 回答 1

0

我能够解决这个问题。我在 Angular Zone 之外完成了 observable。

task.on('progress', (e) => {
                if (e.currentBytes) {
                    // console.log('progress ->', e.currentBytes);
                    this.ngZone.run(() => {
                        this.componentService.loadingIndicator.showProgress({ maxValue: e.totalBytes, value: e.currentBytes });
                    });
                }
            });
            task.on('error', (e) => {
                this.ngZone.run(() => {
                    observer.error(e.error);
                    observer.complete();
                });
            });
            task.on('complete', (e: any) => {
                this.ngZone.run(() => {
                    observer.next(JSON.parse(e.response.getBodyAsString()));
                    observer.complete();
                });
                console.log('complete upload');
            });
于 2020-04-13T09:32:27.437 回答